Posted in 面试题 onJanuary 10, 2016
1. 如果一个将要被销毁的对象被另外一个对象的finalize方法引用,这个对象会被垃圾回收吗?
2. finalize方法可以被重载吗?
3. 子类的finalize方法会调用父类的finalize方法吗?
4. 下面那个会抛出arithmetic异常?
int i = 100/0;
float f = 100.00/0.0
5. 下面那个是不正确的?
x = = Float.NaN
Float.isNan(x);
Myobject .equals(float.NaN);
6. 下面两句代码分别会输出什么?
System.out.println(1+2+”3”);
System.out.println (“1”+2+3);
7. 下面的声明正确吗?
char ch = ‘d’;
if(ch 答案:
1.finalize方法里面引用对象会避免GC收回对象所占的内存,但是这个只能被执行一次,下次GC就不会在垃圾回收前调用finalize方法。
2.答案:是的,但是只有以下这种情况才能被垃圾回收器调用:
protected void finalize() throws Throwable { };
3.Finalize方法不是明确联接的,子类的finalize方法需要明确的在他的最后一个动作调用父类的finalize方法,但是编译器不会强迫进行检查。
4.答案: int i = 100/0 会抛出java.lang.ArithmeticException
5.答案: 1
6.答案:a: 33 b:123
7.答案: 正确的
2. finalize方法可以被重载吗?
3. 子类的finalize方法会调用父类的finalize方法吗?
4. 下面那个会抛出arithmetic异常?
int i = 100/0;
float f = 100.00/0.0
5. 下面那个是不正确的?
x = = Float.NaN
Float.isNan(x);
Myobject .equals(float.NaN);
6. 下面两句代码分别会输出什么?
System.out.println(1+2+”3”);
System.out.println (“1”+2+3);
7. 下面的声明正确吗?
char ch = ‘d’;
if(ch 答案:
1.finalize方法里面引用对象会避免GC收回对象所占的内存,但是这个只能被执行一次,下次GC就不会在垃圾回收前调用finalize方法。
2.答案:是的,但是只有以下这种情况才能被垃圾回收器调用:
protected void finalize() throws Throwable { };
3.Finalize方法不是明确联接的,子类的finalize方法需要明确的在他的最后一个动作调用父类的finalize方法,但是编译器不会强迫进行检查。
4.答案: int i = 100/0 会抛出java.lang.ArithmeticException
5.答案: 1
6.答案:a: 33 b:123
7.答案: 正确的
Java的基础面试题附答案
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Tags in this post...
Reply on: @reply_date@
@reply_contents@