A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王涵 中级黑马   /  2013-9-28 09:03  /  1459 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天看到关于一个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”




评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

2 个回复

倒序浏览
第一题打印的是数组名,输出的应该是@打头的一堆字符串
第二题应该是C
回复 使用道具 举报
本帖最后由 冯晓骏 于 2013-9-28 12:38 编辑

第一个输入1按下回车,打印3个一维数组名,换行符在windows下是“\r\n”,所以算两个字符,System.in是InputStream的对象,也就是字节流对象,每次read()返回一个读取到的字节,所以读到了3个字节,循环执行三次,打印3次一维数组名
第二个选B,递归调用,最内层的foo()执行不完,永远运行不到finally中的语句,只打印try中的打印语句

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马