锁定老帖子 主题:遇到这3道笔试题,大家有把握能做对几道
精华帖 (16) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (8)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-18
第一题: public static void main(String[] args) throws Exception { int[] x = new int[6]; Arrays.fill(x, 1); for (int i = 0; i < x.length; i++) { System.in.read(); System.out.println(x[i]); } }这段代码,输入“1”(不含引号),按回车后,系统输出什么? 第二题: private static void foo() { try { System.out.println("try"); foo(); } catch (Throwable e) { System.out.println("catch"); foo(); } finally { System.out.println("finally"); foo(); } } public static void main(String[] args) { foo(); }上述代码运行后: A.执行一段时间后报栈溢出。 B.会一直输出“try”。 C.会一直输出“try”和“finally”。 D.会一直输出“try”、“catch”和“finally” 第三题: A = 1; System.out.println(A);A是一个int类型变量,请在这段代码的前、后添加任意代码(但两句之间不能再插入代码),使得程序编译时第一句可以编译通过,而第二句出现编译错误。 另:请不要以“脑筋急转弯”的方式来思考此问题,这里java就是普通的java语言,rt.jar和javac都没有被修改过。打印语句import的就是我们平常所用的打印语句。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-07-18
public class Test {
int A = 1; System.out.println(A); } |
|
返回顶楼 | |
发表时间:2011-07-18
第二题应该是C吧
|
|
返回顶楼 | |
发表时间:2011-07-18
第一题是 1,1,1 后等待输入 测出来的 System.in.read().会把回车和换行也看成一种输入...OUT了 测了好几次才发现
|
|
返回顶楼 | |
发表时间:2011-07-18
第2题貌似是B吧。。。去测一下..
|
|
返回顶楼 | |
发表时间:2011-07-18
悲剧了 写道 第二题应该是C吧
你是对的..... |
|
返回顶楼 | |
发表时间:2011-07-18
最后修改:2011-07-18
第三题 可以这样:
int A; if(1!=1)//可以直接用if(false) A = 1; System.out.println(A); 在eclipse下 第一句正常 第二个报 The local variable A may not have been initialized |
|
返回顶楼 | |
发表时间:2011-07-18
第2题觉得D,因为我觉得foo在try块里不停的递归执行,而导致第一层递归没有办法返回,换句话说,
System.out.println("try"); foo(); System.out.println("else");// 永远执行不到 最终会outOfMemery,会被第一层的catch(Throwable),注意,这里是Throwable,所以Error也不放过。 所以程序终究要打印catch的。 但是上机后我发现这个有点诡异,大家可以试试 直接运行代码,结果是C(证明以上分析有点问题,但是我没找到问题所在,悲剧),但是!但是! 如果大家把debug放到第3行,然后按住F8别松手,结果却是B 如果有高手的话,求解释。 |
|
返回顶楼 | |
发表时间:2011-07-18
我测试第一题发现不会有数据输出,去掉system.in.read就正常了,对system.in.read的具体用法不是很清楚Arrays.fill(x,1)是将数据全部填充1进去
|
|
返回顶楼 | |
发表时间:2011-07-18
fangshengcai001 写道 悲剧了 写道 第二题应该是C吧
你是对的..... +1 开始我认为选B 测试了下原来是C。 |
|
返回顶楼 | |