论坛首页 入门技术论坛

某公司的java笔试题,来测测你的基础如何吧

浏览 53360 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-06-03  
这些题出的不错,都是必须搞清楚的基础题。没什么恶心的。
0 请登录后投票
   发表时间:2010-06-03  
ksrs 写道
xxboy 写道
引用

public class Increment {
    public static void main(String[] args) {
        int j = 0;
        for (int i = 0; i < 100; i++)
            j = j++;
        System.out.println(j);
    }
}


看一下字节码就全明白了
   10:  iload_1      // 把0压入栈
   11:  iinc    1, 1 // 把索引为1的局部变量加1
   14:  istore_1     // 再把栈里的变量赋值给索引为1的局部变量,也就是赋值0



楼上正解也!


还是不太理解,哪位大大能解释一下?
0 请登录后投票
   发表时间:2010-06-03  
最后一题: 有没有人试试 d.getYear() 结果是多少,可以试一下哦。。
0 请登录后投票
   发表时间:2010-06-03   最后修改:2010-06-03

好吧,既然字节码不理解,就还原成java代码

int tmp = j;
j = j+1;
j = tmp;

 

0 请登录后投票
   发表时间:2010-06-03  
wnick 写道
IrenBJ 写道

5。

public class Increment {
    public static void main(String[] args) {
        int j = 0;
        for (int i = 0; i < 100; i++)
            j = j++;
        System.out.println(j);
    }
}

 

求打印结果?


请说说为什么 打印是 0

j++是return完再+,++j是+完再return

0 请登录后投票
   发表时间:2010-06-03  
题目挺不错的

问题不难,但是有很多细节上的陷阱,不经常动手写代码的话,就要忘光光了
0 请登录后投票
   发表时间:2010-06-03  
嗯 题目还是有意义的,可以鉴别出这个程序员的功底来。不过我觉得一个公司对程序员的考察不能仅仅是这些题目吧,如果我是出题人,我宁愿在一个方面少出几道题,但去多考察几个方面。我觉得这种基础题10道以内就够了,10道就差不多辨得出水平了。
0 请登录后投票
   发表时间:2010-06-03  
yangfuchao418 写道
bigkai_13 写道
hui94781674 写道
wnick 写道
IrenBJ 写道

5。

public class Increment {
    public static void main(String[] args) {
        int j = 0;
        for (int i = 0; i < 100; i++)
            j = j++;
        System.out.println(j);
    }
}

 

求打印结果?


请说说为什么 打印是 0    因为跳出循环的条件是i < 100 而 i = 0 一开始就小于100了,没有执行循环,所以打印的是0

 

 

跳出循环的条件是i<100?


哈 请说说为什么 打印是 0    因为跳出循环的条件是i < 100 而 i = 0 一开始就小于100了,没有执行循环,所以打印的是0

这孩子晕了

0 请登录后投票
   发表时间:2010-06-03  
aisensiy 写道
yangfuchao418 写道
bigkai_13 写道
hui94781674 写道
wnick 写道
IrenBJ 写道

5。

public class Increment {
    public static void main(String[] args) {
        int j = 0;
        for (int i = 0; i < 100; i++)
            j = j++;
        System.out.println(j);
    }
}

 

求打印结果?


请说说为什么 打印是 0    因为跳出循环的条件是i < 100 而 i = 0 一开始就小于100了,没有执行循环,所以打印的是0

 

 

跳出循环的条件是i<100?


哈 请说说为什么 打印是 0    因为跳出循环的条件是i < 100 而 i = 0 一开始就小于100了,没有执行循环,所以打印的是0

这孩子晕了

大哥你弄错了吧??应该说是跳出循环的条件是i>100,而不是i<100,之所以打印0,前面已经有人说了。主要考j++和++j的区别

0 请登录后投票
   发表时间:2010-06-03  
看下java解惑,这些问题都迎刃而解了,不过我感觉这些题目测试不出什么水平,真正高级的程序员,并不会写让人容易理解混淆的代码,相反,他们会避开这种写法,让人更加容易阅读和理解,我觉得这个才是正道。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics