上:
11、下列表述错误的是?(D)
A、 int是基本类型,直接存数值,Integer是对象,用一个引用指向这个对象。
B、 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
C、 封装的主要作用在于对外隐藏内部实现细节,可以增强程序的安全性
D、 final是java中的修饰符,可以修饰类、接口、抽象类、方法和属性。
解析:
16、默认RMI采用的是什么通信协议? C
A、 HTTP
B、 UDP/IP
C、 TCP/IP
D、 Multicast
解析:
17、Given:
1 2 3 4 5 6 7 8 9 |
//point X public class Foo { public static void main(String[] args) throws Exception {
PrintWriter out = new PrintWriter( new java.io.OutputStreamWriter(System.out), true); out.printIn(“Hello”); } } |
Which statement at PointX on line I allows this code to compile and run? A
A、 import java.io.PrintWriter;
B、 include java.io.PrintWriter;
C、 import java.io.OutputStreamWriter;
D、 include java.io.OutputStreamWriter;
E、 no statement is needed.
18、 对于abstract声明的类,下面说法正确的是 E
A、 可以实例化
B、 不可以被继承
C、 子类为abstract
D、 只能被继承
E、 可以被抽象类继承
解析:
解析:
服务器端,首先是服务器初始化Socket,然后是与端口进行绑定(blind()),端口创建ServerSocket进行监听(listen()),然后调用阻塞(accept()),等待客户端连接。与客户端发生连接后,会进行相关的读写操作(read(),write()),最后调用close()关闭连接。
21、类Parent和Child定义如下:
1 .class Parent{ 2. public float aFun(float a, float b) { } 3 .} 4 .class Child extends Parent{ 5 . 6 .} |
将以下哪种方法插入行5是不合法的。( A )
A、 float aFun(float a, float b){ }
B、 public int aFun(int a, int b) { }
C、 public float aFun(float p, float q){ }
D、 private int aFun(int a, int b){ }
解析:
重写原则(两同两小一大):
1、两同:方法名相同,形参列表相同。
2、两小:子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常更小或相等。
3、一大:子类方法的访问权限应比父类方法的访问权限更大或相等。
4、尤其指出:覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法,一个是实例方法。
A选项是重写,但是默认访问修饰符比父类小,插入第五行编辑器会报错。(默认包访问权限 > public)
B、D不是重写。因为形参列表和返回值类型不同,不满足“两同两小”。所以写在第五行以普通方法对待,插入第五行没有错误。
C选项满足重写的各项条件,是正确的重写,所以插入第五行没有错误。
22、关于匿名内部类叙述正确的是? (B)
A、 匿名内部类可以继承一个基类,不可以实现一个接口
B、 匿名内部类不可以定义构造器
C、 匿名内部类不能用于形参
D、 以上说法都不正确
解析:
- 使用匿名内部类时,必须继承一个类或实现一个接口
- 匿名内部类由于没有名字,因此不能定义构造函数
- 匿名内部类中不能含有静态成员变量和静态方法
25、下列关于JAVA多线程的叙述正确的是(BC)(多选)
A、 调用start()方法和run()都可以启动一个线程
B、 CyclicBarrier和CountDownLatch都可以让一组线程等待其他线程
C、 Callable类的call()方法可以返回值和抛出异常
D、 新建的线程调用start()方法就能立即进行运行状态
解析:
A. start()方法来启动线程,真正实现了多线程运行,调用了run()方法;run()方法当作普通方法的方式调用。
27、
关于下面一段代码,以下说法正确的是: (ACD)(多选)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class Test { private synchronized void a() { } private void b() { synchronized (this) { } } private synchronized static void c() { } private void d() { synchronized (Test.class) { } } } |
A、 同一个对象,分别调用方法a和b,锁住的是同一个对象
B、 同一个对象,分别调用方法a和c,锁住的是同一个对象
C、 同一个对象,分别调用方法b和c,锁住的不是同一个对象
D、 同一个对象,分别调用方法a、b、c,锁住的不是同一个对象
解析:同步普通方法锁的是this也就是当前对象,同步静态方法锁的是类对象,也就是Class对象
29、局部内部类可以用哪些修饰符修饰?(CD)(多选)
A、 public
B、 private
C、 abstract
D、 final
34、ArrayList和LinkList的描述,下面说法错误的是? D
A、 LinkedeList和ArrayList都实现了List接口
B、 ArrayList是可改变大小的数组,而LinkedList是双向链接串列
C、 LinkedList不支持高效的随机元素访问
D、 在LinkedList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在ArrayList的中间插入或删除一个元素的开销是固定的
解析:
D的说法反了...
Arraylist的内存结构是数组,当超出数组大小时创建一个新的数组,吧原数组中元素拷贝过去。其本质是顺序存储的线性表,插入和删除操作会引发后续元素移动,效率低,但是随机访问效率高
37、下面程序的输出是:(D)
1 2 3 4 5 |
String x="fmn"; x.toUpperCase(); String y=x.replace('f','F'); y=y+"wxy"; System.out.println(y); |
A、 FmNwxy
B、 fmnwxy
C、 wxyfmn
D、 Fmnwxy
解析:
String x="fmn"; “fmn”是在常量池里的不可变对象。
39、以下程序的运行结果是:( C )
1 2 3 4 5 6 7 8 9 10 |
TreeSet<Integer> set = new TreeSet<Integer>(); TreeSet<Integer> subSet = new TreeSet<Integer>(); for(int i=606;i<613;i++){ if(i%2==0){ set.add(i); } } subSet = (TreeSet)set.subSet(608,true,611,true); set.add(629); System.out.println(set+" "+subSet); |
A、 编译失败
B、 发生运行时异常
C、 [606, 608, 610, 612, 629] [608, 610]
D、 [606, 608, 610, 612, 629] [608, 610,629]
解析:
subset(form,true,to,true)是Treeset的非静态方法,该方法返回从form元素到to元素的一个set集合,两个boolean类型是确认是否包含边境值用的。
41、Java程序中的类名称必须与存放该类的文件名相同。 B
A、 对
B、 错
解析:
43、以下代码执行的结果显示是多少(B)?
public class Demo{
public static void main(String[] args){
System.out.print(getNumber(0));
System.out.print(getNumber(1));
System.out.print(getNumber(2));
System.out.print(getNumber(4));
}
public static int getNumber(int num){
try{
int result = 2 / num;
return result;
}catch (Exception exception){
return 0;
}finally{
if(num == 0){
return -1;
}
if(num == 1){
return 1;
}
}
}
}
A、 0110
B、 -1110
C、 0211
D、 -1211
解析:
finally一定会在return之前执行,但是如果finally使用了return或者throw语句,将会使trycatch中的return或者throw失效
45、于访问权限,说法正确的是? (A )
A、 类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A可以访问类B的方法testB
B、 类A和类B在同一包中,类B有个protected的方法testB,类A不是类B的子类(或子类的子类),类A不可以访问类B的方法testB
C、 访问权限大小范围:public > 包权限 > protected > private
D、 访问权限大小范围:public > 包权限 > private > protected
46、在 Java 中,属于整数类型变量的是(C)
A、 single
B、 double
C、 byte
D、 char
解析:
Java中的四类八种基本数据类型
第二类:浮点型 float double
第三类:逻辑型 boolean(它只有两个值可取true false)
第四类:字符型 char
48、
static String str0="0123456789"; static String str1="0123456789"; String str2=str1.substring(5); String str3=new String(str2); String str4=new String(str3.toCharArray()); str0=null; |
假定str0,...,str4后序代码都是只读引用。
Java 7中,以上述代码为基础,在发生过一次FullGC后,上述代码在Heap空间(不包括PermGen)保留的字符数为(C)
A、 5
B、 10
C、 15
D、 20
解析: