黑马程序员技术交流社区
标题:
两个java面试题
[打印本页]
作者:
王涵
时间:
2013-9-28 09:03
标题:
两个java面试题
今天看到关于一个java的面试题,你们会做吗?
第一题:
Java代码
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
);
}
}
这段代码,输入“1”(不含引号),按回车后,系统输出什么?
第二题:
Java代码
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”
作者:
酱爆
时间:
2013-9-28 09:39
第一题打印的是数组名,输出的应该是@打头的一堆字符串
第二题应该是C
作者:
冯晓骏
时间:
2013-9-28 12:34
本帖最后由 冯晓骏 于 2013-9-28 12:38 编辑
第一个输入1按下回车,打印3个一维数组名,换行符在windows下是“\r\n”,所以算两个字符,System.in是InputStream的对象,也就是字节流对象,每次read()返回一个读取到的字节,所以读到了3个字节,循环执行三次,打印3次一维数组名
第二个选B,递归调用,最内层的foo()执行不完,永远运行不到finally中的语句,只打印try中的打印语句
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2