黑马程序员技术交流社区
标题:
两道简单的面试题!!
[打印本页]
作者:
せR3n、何必装纯
时间:
2011-11-11 22:23
标题:
两道简单的面试题!!
1.以下代码:编译、运行输入“a”(不含引号),按回车后,系统输出什么?
public static void main(String[] args) throws Exception{
int[] x = {1,2,3,4,5,6};
for(int y:x){
System.in.read();
System.out.println(y);
}
}
2.以下代码运行后
A.执行一段时间后报栈溢出。 B.会一直输出“try”。 C.会一直输出“try”和“finally”。 D.会一直输出“try”、“catch”和“finally”
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();
}
作者:
石宗银
时间:
2011-11-11 22:41
本帖最后由 石宗银 于 2011-11-11 22:49 编辑
。你这第一题,,。。你能解释下不,,怎么输个a,回车后,,下面输出 123,,
输个aa,,下面输出1234,,输个aaa,下面输出12345,,输个aaaa ,下面输出123456
作者:
郭学文
时间:
2011-11-11 23:37
public static void main(String[] args) throws Exception{
int[] x = {1,2,3,4,5,6};
for(int y:x){//第一次循环
System.in.read();//输入a,实际为 a\r\n 因为一次只能读一个字符,只读了a 留下了\r\n 没读
System.out.println(y);//输出
}//返回循环
}
复制代码
public static void main(String[] args) throws Exception{
int[] x = {1,2,3,4,5,6};
for(int y:x){//第二次循环
System.in.read();//因为上次留下了\r\n 没读,不再等待输入,直接读一\r
System.out.println(y);//输出
}//返回循环
}
复制代码
public static void main(String[] args) throws Exception{
int[] x = {1,2,3,4,5,6};
for(int y:x){//第三次循环
System.in.read();//读还没有读完的\n,也不等待
System.out.println(y);//输出
}//返回循环
}
复制代码
好不容易想通,这题太坏了
作者:
黄健
时间:
2011-11-12 00:04
第二题运行结果是c,求高人解释
作者:
坚强
时间:
2011-11-12 16:13
第一个是java5中新增的增强for语句
foreach的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}
作者:
olkldksl
时间:
2011-11-12 17:17
第一题
增强for循环就不用说了,System.in.read()的功能是读入下一个字节。输入一个“a”再加上回车,内存里是有三个字节,'a','\r','\n',这样read()函数就读了三次,打印了数组里的三个元素
第二题是c
就没异常,执行不到catch里面的代码
作者:
胡文杰
时间:
2011-11-12 17:30
第一题有人给了详解,第二题finally是必读的代码,所以try过后就会夺取finally,这是一个死循环,循环输出try和finally里面的内容先try读完foo()就会运行 finally
作者:
郭学文
时间:
2011-11-12 17:39
第二题实际运行结果是一段狂TRY
然后开始TRY Catch Finally
把Catch里的E输出,是在一阵狂Try后栈溢出,然后开始Catch 继而Finally
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2