锁定老帖子 主题:遇到这3道笔试题,大家有把握能做对几道
精华帖 (16) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-11
测试答案是d 仔细看控制台输出,,里面会有少量的catch 打印出来
|
|
返回顶楼 | |
发表时间:2011-08-11
lenshon 写道
ucfjepl 写道
private boolean f = false; public void test(int i) { i++; try { System.out.println("try"+i); if(!f)test(i); } catch (Error e) { e.printStackTrace(); System.out.println("catch"+i); f=true; } finally { System.out.println("finally"+i); if(!f)test(i); } } public static void main(String[] args) { Test t = new Test(); t.test(0); } 我把catch的类型改了一下,这样我们就可以看到异常了,异常类型是java.lang.StackOverflowError。 try和finally。
java.lang
|
|
返回顶楼 | |
发表时间:2011-08-15
liuningbo 写道 关于第二题,不管执行多少遍都没有没有新对象,所以不会栈溢出的吧,答案是C
会出现栈溢出,非基础类型的数据,是要占据两块内存空间的。String类型的常量 是属于对象类型的,也就是每执行一遍循环,就会在stack segment 中创建一个引用类型的变量指向 这个常量,数量多了,应该会出现 stack 内存溢出的。 |
|
返回顶楼 | |