北方互联 JAVA复赛笔试
Java笔试题
一、选择题 30分
- 在java中,由java编译器自动导入,而无需在程序中用import导入的包是( B)
A. java.applet
B. java.lang
C. java.util
D. java.awt
- 下列方法中可以用来创建一个新线程的是( D )
A.实现java.lang.Runnable接口并重写run()方法
B.实现java.lang.Runnable接口并重写start()方法
C.实现java.lang.Thread类并实现start()方法
D. 继承java.lang.Thread类并重写run()方法
- 下列代码中,讲引起一个编译错误的行是( D)
1 public class Test{
2 int m,n;
3 public Test(){}
4 public Test(int a){m=a;}
5 public static void main(String args[]){
6 Test t1,t2;
7 int j,k;
8 j=0;k=0;
9 t1=new Test();
10 t2=new Test(j,k);
11 }
12}
A.第三行
B.第五行
C.第六行
D.第十行
4.switch(){}结构中,括号中可使用的数据类型不能是( D )。
A.long
B.int
C.short
D.float
- Socket通信使用的底层协议是(B )
A.UDP协议
B.TCP/IP协议
C.FTP协议
D.TELNET协议
- 下列叙述中,正确的是(A )
A.java语言的标识符是区分大小写的
B.源文件名与public类名可以不相同
C.源文件名其扩展为.jar
D.源文件中public类的数目不限
- 下列属于合法的java标识符的是(A )
A._cat
B.5books
C.+static
D.-3.14159
- 下面代码运行的结果是(B )
Public class Demo{
Public int add(int a,int b){
Try{
Return a+b;
}catch(Exception e){
System.out.println(“Catch 语句块”);
}finally{
System.out.println(“finally 语句块”);}
}
Return 0;
}
Public static void main(String[] args){
Demo demo = new Demo();
System.out.println(“和是:”+demo.add(9,34));
}
A. 编译异常
B. Finally语句块和是:43
C. 和是:43finally语句块
D. Catch语句块和是:43
- 根据下面的代码
String s = null;
会抛出NullPPointerException 异常的有(A )。
A. If((s!=null)&(s.length()>0))
B. if((s!=null)&&(s.length()>0))
C. if((s==null|(s.length()==0))
D. if((s==null)||(s.length()==0))
- 在java中开发jdbc应用程序时,使用DriverManager类的getConnection()方法建立与数据源的链接语句为:
Connection con = DriverManager.getConnection(“jdbc:odbc:news”);
URL链接中的“news”表示的是(C )
A. 数据库中表的名称
B. 数据库服务器的机器名
C. 数据源的名称
D. 用户名
- 执行如下代码
a=0;c=0;
do{
–c;a=a-1;
}while(a>0);后,c的值是( C)
A.0
B.1
C.-1
D.死循环
- 分析下面的代码,哪些叙述是正确的?( C )
Public class Person{
Int arr[] = new int[10];
Public static void main(String a[]){
System.out.println(arr[1]);
}
}
A. 编译时出错
B. 编译时正确,而运行时出错
C. 输出0
D. 输出null
- 下面哪个选项对数组的声明、创建和初始化是合法的? (B D E)
A.int[] myList = {“1”,”2”,”3”};
B.int[] myList = {5,8,2};
C.int myList[][] = {4,9,7,0};
D.int myList[] = {4,3,7};
E.int[] myList={1,3,5};
F.int myList[]={4;5;6};
- 动态构造字符串数据更适合( A),数值不可改变的字符串更适合( B)
A.String
B.StringBuffer
C.char
- 以下继承于Collection接口的有哪些( B C )
A.Map
B.List
C.Set
- Iterator是接口吗? (A)
A.是
B.不是
解析:Iterator接口也是Java集合框架的成员,但它与Collection系列、Map系列的集合不一样:Collection系列集合、Map系列集合主要用于盛装其他对象,而Iterator则主要用于遍历(即迭代访问)Collection集合中的元素,Iterator对象也被称为迭代器。
- 以下哪些java容器是线程安全的(A ),哪些是天然支持并发的(D BCE)?
A.Vector
B.ArrayList
C.HashSet
D.ConcurrentHashMap
E.EnumSet
- Itertor有哪些方法?(ACD )
A.next
B.equals
C.remove
D.hasNext
- 以下代码是哪种设计模式( C )
Public class A{
Private static A instance = null;
Public static A getInstance(){
If(instance==null)
Instance = new A();
Return instance;}
}
A. 工厂模式
B. 适配器模式
C. 单例模式
- 运行B类,程序会输出顺序是?(ADBC )
Public class A{
Static{
System.out.print(“1”);
}
Public A(){
System.out.println(“2”);
}
}
Public class B extends A{
Static{
System.out.print(“4”);
}
Public B(){
System.out.print(“3”);
}
Public static void main(String[] args){
New B();
}
}
A.1 B.2 C.3 D.4
- File类型中定义了什么方法来判断一个文件是否存在?(D )
A.creatNewFile B.renameTo C.delete D.exists
- 关于转发和重定向以下哪些说法是正确的( AD)
A.转发url不会改变
B.重定向url不会改变
C.重定向保持request中存放参数
D.转发能保持request中存放参数
23.POST和GET哪一个在form提交时会自动把参数和值加入到url中(B )
A.POST B.GET C.两者都会
24.要实现层的隐藏,display:______( D)
A.false B.hidden C.”” D.none
25.”abcdefg”.sbustring(2,3)的结果是(C )
A.cde B.b C.c D.bcd
26.在正则 表达式中\d代表什么(A )
A.数字字符
B.非数字字符
C.任意一个字母
D.任意的空白符
27.以下sql语句下划线中填入什么值能得到正确的结果?( A)
Select num,count(score) from play group by____
A.num B.score C.count(score)
28.关于构造器是否可以被override,是否可以被overload( C )
A.能,能 B不能,能 C不能,能 D能,不能
29.如果对象的引用被置为null,垃圾收集器什么时候释放对象占用的内存( C )
A.立即释放 B.方法调用结束后释放 C.下一个垃圾回收周期 D.不确定
30.关于接口和抽象类不正确是:( C )
A. 接口中所有的方法隐含的都是抽象的,而抽象类则可以同时包含抽象和非抽象的方法
B. 类可以实现很多个接口,但是只能继承一个抽象类
C. Java接口与抽象类都可以包含非final的变量
D. 接口是绝对抽象的,不可以被实例化,抽象类也不可以被实例化
二、程序题 30分
1.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序 10分
String str = "1,2,3,4,5,6,7";
String[] arr= str.split(",");
for(int i = 0;i<arr.length - 1 ;i++) {
for(int j = 1;j<arr.length - j - 1;j++) {
if(arr[j] < arr[ j + 1]) {//降序 如果变成 arr[j] > arr[ j + 1]就成了升序
temp = arr[ j + 1];
arr[ j + 1] = arr[j];
arr[j] = temp;
}
}
}
for(String ar : arr) {
system.out.println(ar );
}
2.实现数组复制 10分
package TEST1;
import java.util.Scanner;
public class ArrayCopy {
public static void main(String[] args) {
final int ARRAY_MAX = 12;
int[] sA = new int[ARRAY_MAX];
int[] tA = new int[sA.length];
Scanner scan = new Scanner(System.in);
for(int i = 0;i<sA.length;i++){
sA[i] = scan.nextInt();
}
**for(int j = 0;j<tA .length;j++){
tA [j] = sA [j];
}**
for(int k = 0;k < sA.length;k++){
System.out.print(tA[k]+" ");
}
}
}
3.冒泡排序的实现 10分
package TEST1;
import java.util.Scanner;
public class ArrayCopy {
public static void main(String[] args) {
final int ARRAY_MAX = 12;
int[] sa = new int[ARRAY_MAX];
int i,j;
Scanner scan = new Scanner(System.in);
for(i = 0;i<sa.length;i++){
sa[i] = scan.nextInt();
}
int t;
**for(j=0;j<sa.length-1;j++)//升序
for(i=0;i<sa.length-1-j;i++){
if(sa[i]>sa[i+1])
{
t = sa[i];
sa[i]=sa[i+1];
sa[i+1]=t;
}
}**
for(int k = 0;k < sa.length;k++){
System.out.print(sa[k]+" ");
}
}
}
三、简答题 40分
1、 请列出Java主要的基本数据类型。10分
java的基本数据类型有八种:四种整数类型(byte、short、int、long);两种浮点数类型(float、double):一种字符类型(char):一种布尔类型(boolean)。
2、 描述spring的理解10分
Spring主要是为企业开发解决了系列的问题,而且可以十分方便的与其他框架集成在一起。最显著的特性是IOC与AOP。
IOC
控制反转,所有的实例交由IOC容器管理。解决对象依赖,同时避免在代码中各种乱新建实例,难以管理。
AOP
面向切面编程,提供了很多企业应用的刚需,日志、事务、资源池等等。将系统服务与业务逻辑分离,并为这些系统服务提供了良好的解决方案。
https://blog.csdn.net/u011299745/article/details/74960356
3、 描述对mysql事务的理解10分
事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)。
一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成。
事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同。
事务四大特征(ACID)
原子性( A ):事务是最小单位,不可再分
一致性( C ):事务要求所有的DML语句操作的时候,必须保证同时成功或者同时失败
隔离性( I ):事务A和事务B之间具有隔离性
持久性( D ):是事务的保证,事务终结的标志(内存的数据持久到硬盘文件中)
https://blog.csdn.net/w_linux/article/details/79666086
4、 如何提升tomcat服务器性能10分
服务器资源
利用缓存和压缩
采用集群
优化tomcat参数
改用APR库
优化网络
让测试说话