1.给出以下代码
int i = 3;
String result = new String();
switch (i) {
case 1:
result = result + "him ";
case 2:
result = result + "her ";
case 3:
result = result + "it ";
default:
result = result + "me ";
}
System.out.println(result);
请给出最终输出内容。
A it me
B him her it me
C him her
D me
2.transient 变量和下面哪一项有关?
A Cloneable
B Serializable
C Runnable
D Comparable
3.有以下一个对象:
public class DataObject implements Serializable{
private static int i=0;
private String word=" ";
public void setWord(String word){
this.word=word;
}
public void setI(int i){
Data0bject.i=i;
}
}
创建一个如下方式的DataObject:
DataObject object=new Data0bject ( );
object.setWord("123");
object.setI(2);
将此对象序列化为文件,并在另外一个JVM中读取文件,进行反序列化,请问此时读出的Data0bject对象中的word和i的值分别为:
A “”, 0
B “”, 2
C “123”, 2
D “123”, 0
解析:这道题的答案应该是: D,序列化保存的是对象的状态,静态变量属于类的状态,因此,序列化并不保存静态变量。所以i是没有改变的
- 从以下四个选项选出不同的一个。
A LVS
B Nginx
C Lighttpd
D Apache
解析:其他三个都是web服务器LVS是 Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统
多选题
5.以下哪些方法是Object类中的方法
A clone()
B toString()
C wait()
D finalize()
解析:
全选,Object 类中方法及说明如下:
registerNatives() //私有方法
getClass() //返回此 Object 的运行类。
hashCode() //用于获取对象的哈希值。
equals(Object obj) //用于确认两个对象是否“相同”。
clone() //创建并返回此对象的一个副本。
toString() //返回该对象的字符串表示。
notify() //唤醒在此对象监视器上等待的单个线程。
notifyAll() //唤醒在此对象监视器上等待的所有线程。
wait(long timeout) //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或 者超过指定的时间量前,导致当前线程等待。
wait(long timeout, int nanos) //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
wait() //用于让当前线程失去操作权限,当前线程进入等待序列
finalize() //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
6.类Person里面有个方法sleep(),如果直接用Person.sleep(),则方法sleep前面必须用的关键词是? ( )
A class
B static
C public
D final
7.以下哪个接口的定义是正确的?( )
A interface B { void print() { } ;}
B interface B { static void print() ;}
C abstract interface B extends A1, A2 //A1、A2为已定义的接口 { abstract void print(){ };}
D interface B { void print();}
8.如果int x=20, y=5,则语句System.out.println(x+y +“”+(x+y)+y); 的输出结果是()
A 2530
B 55
C 2052055
D 25255
解析:
1)不论有什么运算,小括号的优先级都是最高的,先计算小括号中的运算,得到x+y +“”+25+y
2)任何字符与字符串相加都是字符串,但是是有顺序的,字符串前面的按原来的格式相加,字符串后面的都按字符串相加,得到25+“”+25+5
3)上面的结果按字符串相加得到25255
9.以下哪一个不是赋值符号?
A +=
B <<=
C <<<=
D >>>=
多选题
10.关于java集合下列说法不正确的有哪些()
A HashSet 它是线程安全的,不允许存储相同的对象
B ConcurrentHashMap 它是线程安全的,其中存储的键对象可以重复,值对象不能重复
C Collection接口是List接口和Set接口的父接口,通常情况下不被直接使用
D ArrayList线程安全的,允许存放重复对象
解析:
链接:
A. HashSet 内部使用非同步容器 HashMap 实现,且HashSet 内部方法未同步处理,故线程不安全;Set 容器存放非重复对象
B. ConcurrentHashMap 是一个同步的K-V存储容器。Key不重复,Value可重复,同HashMap一样。
C. 对
D. ArrayList 非同步容器
11.正则表达式语法中 \d 匹配的是?()
A 数字
B 非数字
C 字母
D 空白字符
解析:
\d:匹配一个数字。等价于[0-9]。
12.执行如下代码后输出结果为( )
public class Test {
public static void main(String[] args) {
System.out.println("return value of getValue(): " + getValue());
}
public static int getValue() {
int i = 1;
try {
i = 4;
} finally{
i++;
return i;
}
}
}
A return value of getValue(): 1
B return value of getValue(): 4
C return value of getValue(): 5
D 其他几项都不对
正确答案:C
解析:
当Java程序执行try块、catch块时遇到了return或throw语句,这两个语句都会导致该方法立即结束,但是系统执行这两个语句并不会结束该方法,而是去寻找该异常处理流程中是否包含finally块,如果没有finally块,程序立即执行return或throw语句,方法终止;如果有finally块,系统立即开始执行finally块。只有当finally块执行完成后,系统才会再次跳回来执行try块、catch块里的return或throw语句;如果finally块里也使用了return或throw等语句,finally块会终止方法,系统将不会跳回去执行try块、catch块里的任何代码。综上所述,答案选择C。
假设num已经被创建为一个ArrayList对象,并且最初包含以下整数值:[0,0,4,2,5,0,3,0]。 执行下面的方法numQuest(),数组num会变成?
private List<Integer> nums;
//precondition: nums.size() > 0
//nums contains Integer objects
public void numQuest() {
int k = 0;
Integer zero = new Integer(0);
while (k < nums.size()) {
if (nums.get(k).equals(zero))
nums.remove(k);
k++;
}
}
A [3, 5, 2, 4, 0, 0, 0, 0]
B [0, 0, 0, 0, 4, 2, 5, 3]
C [0, 0, 4, 2, 5, 0, 3, 0]
D [0, 4, 2, 5, 3]
解析:
zero==0,如果get(k)==0,执行remove(k); ;
size8 ; k0 , 因此第一次remove(0) ,删除索引为0的元素也就是第一个元素0,然后k++, size()–;
此时集合元素为 :[0,4,2,5,0,3,0]
size7; k1,因此get(1)4 !=0 , 不执行remove(); k++,因没有删除元素,size()不变,
此时集合元素为:[0,4,2,5,0,3,0]
size7;k2,k++;
size7;k3,k++;
size7;k4,get(4)0,remove(4) ; k++, size()–;
此时集合元素为: [0,4,2,5,3,0]
size6;k5,get(5)0,remove(5);k++, size()–;
此时集合元素为: [0,4,2,5,3]
size5; k==6 ;退出循环;最终输出此时集合元素为 [0,4,2,5,3]
关于匿名内部类叙述正确的是? ( )
A 匿名内部类可以继承一个基类,不可以实现一个接口
B 匿名内部类不可以定义构造器
C 匿名内部类不能用于实参
D 以上说法都不正确
解析:
由于构造器的名字必须与类名相同,而匿名类没有类名,所以匿名类不能有构造器。
下面哪几个函数 public void example(){…} 的重载函数?()
A public void example(int m){…}
B public int example(){…}
C public void example2(){…}
D public int example(int m,float f){…}
解析:重载 函数方法名必须相同,看参数列表即可,无关返回值。
16.Which of the following statements are valid array declaration?
(A) int number();
(B) float average[];
© double[] marks;
(D) counter int[];
A (B) & ©
B (A)
C (A) & ©
D (D)
17.如下代码的输出结果是什么?
public class Test {
public int aMethod(){
static int i = 0;
i++;
return i;
}
public static void main(String args[]){
Test test = new Test();
test.aMethod();
int j = test.aMethod();
System.out.println(j);
}
}
A 0
B 1
C 2
D 编译失败
18.根据以下代码段,下列说法中正确的是( )。
public class Parent {
private void m1(){}
void m2(){}
protected void m3(){}
public static void m4(){}
}
A 子类中一定能够继承和覆盖Parent类的m1方法
B 子类中一定能够继承和覆盖Parent类的m2方法
C 子类中一定能够继承和覆盖Parent类的m3方法
D 子类中一定能够继承和覆盖Parent类的m4方法
19.当编译并运行下面程序时会发生什么结果()
public class Bground extends Thread{
public static void main(String argv[]){
Bground b = new Bground();
b.run();
}
public void start(){
for(int i=0;i<10;i++){
System.out.println("Value of i = "+i);
}
}
}
A 编译错误
B 运行错误
C 编译通过并输出0到9
D 编译通过,但无输出
20.下面哪个流类不属于面向字符的流()
A BufferedWriter
B FileInputStream
C ObjectInputStream
D InputStreamReader
解析:
面向字符的输入流类都是Reader的子类,
面向字符的输出流都是类 Writer 的子类