天梯180418
1. 在Java中,对于不再使用的内存资源,如调用完成的方法,“垃圾回收器”会自动将其释放。( )
A. 正确
B. 错误
2. What is displayed when the following is executed;
double d1=-0.5;
System.out.println("Ceil d1="+Math.ceil(d1));
System.out.println("floor d1="+Math.floor(d1));
A. Ceil d1=-0.0
floor d1=-1.0
B. Ceil d1=0.0
floor d1=-1.0
C. Ceil d1=-0.0
floor d1=-0.0
D. Ceil d1=0.0
floor d1=0.0
E. Ceil d1=0
floor d1=-1
3. (不定项)有关finally语句块说法正确的是( )
A. 不管 try 语句块正常结束还是异常结束,finally语句块都是要被执行的
B. 在try语句块或catch语句块中执行到System.exit(0)直接退出程序
C. finally块中的return语句会覆盖try块中的return返回
D. finally 语句块在 catch语句块中的return语句之前执行
4. (不定项)下列代码片段中,存在编辑错误的语句是()
byte b1=1,b2=2,b3,b6,b8;
final byte b4=4,b5=6,b7;
b3=(b1+b2); /*语句1*/
b6=b4+b5; /*语句2*/
b8=(b1+b4); /*语句3*/
b7=(b2+b5); /*语句4*/
System.out.println(b3+b6);
A. 语句2
B. 语句1
C. 语句3
D. 语句4
5. 下面哪些接口直接继承自Collection接口()
A. List
B. Map
C. Set
D. Iterator
//-----------------------分割线-------------------------------
B
A
ABCD
BCD
AC
答案解析:
1.
java 虚拟机,对于方法的调用采用的是栈帧(方法调用和方法执行),调用则入栈,完成之后则出栈。不就回收了内存资源
而针对于其他,GC回收的时间不定。
2.
ceil 方法上有这么一段注释:If the argument value is less than zero but greater than -1.0, then the result is negative zero
如果参数小于0且大于-1.0,结果为 -0
3.解析:
1、不管有木有出现异常,finally块中代码都会执行;
2、当try和catch中有return时,finally仍然会执行;
3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;
4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。
4.
语句1错误:b3=(b1+b2);自动转为int,所以正确写法为b3=(byte)(b1+b2);或者将b3定义为int;
语句2正确:b6=b4+b5;b4、b5为final类型,不会自动提升,所以和的类型视左边变量类型而定,即b6可以是任意数值类型;
语句3错误:b8=(b1+b4);虽然b4不会自动提升,但b1仍会自动提升,所以结果需要强转,b8=(byte)(b1+b4);
语句4错误:b7=(b2+b5); 同上。同时注意b7是final修饰,即只可赋值一次,便不可再改变。
5.