1.java中关于内存回收的正确说法是(B)
A 程序员必须创建一个线程来释放内存B 内存回收程序负责释放无用内存 C 内存回收程序允许程序员直接释放内存 D 内存回收程序可以在指定的时间释放内存对象
解析:A:垃圾回收程序是一般是在堆上分配空间不够的时候会自己进行一次GC,程序员不需要也不能主动释放内存。 B:Java的内存释放由垃圾回收程序来进行释放 C:在Java里,内存的释放由垃圾回收程序进行管理,程序员不能直接进行释放。 D:程序员可以调用System.gc()运行垃圾回收器,但是不能指定时间。
2.A派生出子类B,B派生出子类C,并且在java源代码中有如下声明:
A a0=new A(); A a1=new B(); A a2=new C();以下哪个说法是正确的?(A)
A 第1行,第2行和第3行的声明都是正确的 B 第1,2,3行都能通过编译,但第2,3行运行时出错 C 第1,2行能通过编译,但第3行编译出错 D 只有第1行能通过编译
解析:向上转型
3.以下说法错误的是(C)
A 数组是一个对象 B 数组不是一种原生类 C 数组的大小可以任意改变 D 在Java中,数组存储在堆中连续内存空间里
解析:Java不允许修改数组长度,这也是Java安全性的体现之一 4.Test.main() 函数执行后的输出是(D)
public class Test { public static void main(String [] args){ System.out.println(new B().getValue()); } static class A{ protected int value; public A(int v) { setValue(v); } public void setValue(int value){ this.value = value; } public int getValue(){ try{ value++; return value; } catch(Exception e){ System.out.println(e.toString()); } finally { this.setValue(value); System.out.println(value); } return value; } } static class B extends A{ public B() { super(5); setValue(getValue() - 3); } public void setValue(int value){ super.setValue(2 * value); } } }6 A 11 17 34 B 22 74 74 C 6 7 7 D 22 34 17
5.关于Java的异常处理机制的叙述哪些正确?C
A 如果程序发生错误及捕捉到异常情况了,才会执行finally部分 B 其他选项都不正确C 当try区段的程序发生异常且被catch捕捉到时,才会执行catch区段的程序 D catch部分捕捉到异常情况时,才会执行finally部分
6.如何跳出Array的forEach循环?break
7.一个以”.java”为后缀的源文件只能有一个与文件名相同的类,可以包含其他类
8.如下Java语句
double x= 3.0; int y=5; x/=--y;执行后, x的值是(0.75)
9.
public class Test{ static int cnt = 6; static{ cnt += 9; } public static void main(String[] args){ System.out.println(“cnt =” + cnt); } static{ cnt /=3; }; }cnt的值是cnt=5
10. JUnit主要用来完成单元测试