该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-02
好好回切看看SCJP的试题吧
|
|
返回顶楼 | |
发表时间:2010-06-02
这种题纯属刁难
|
|
返回顶楼 | |
发表时间:2010-06-02
IrenBJ 写道
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); } }
求打印结果?
j= j++; 相当于 k = j; j = j+1; j = k; 所以等于0。我是这么理解的。 |
|
返回顶楼 | |
发表时间:2010-06-02
queal 写道 nickevin 写道 int j = 10; for (int i = 0; i < 100; i++) { j = j + j; } System.out.println(j); 改造一下 结果如何 为什么结果是还是0, 我追到32次的时候, 后面就全部是0了, 想知道答案 好像一直就是0吧?你把打印那句话放循环里面也是0 |
|
返回顶楼 | |
发表时间:2010-06-02
最后修改:2010-06-02
ls正解,应该是先赋值再加1,因为每次循环结束时没有再赋值,所以一直保持是这个数字,jdk1.5下测试通过
|
|
返回顶楼 | |
发表时间:2010-06-02
考这些是不是有点转牛角尖了? 我觉得这个面试题是不是太语法化了,这貌似scjp考试应该出现的吧。
|
|
返回顶楼 | |
发表时间:2010-06-02
我想问下 答案在哪边啊
|
|
返回顶楼 | |
发表时间:2010-06-02
原因应该是j++变成了无效操作,j = j++可分解为:j = j ;和j ++;
在执行j=j的时候有延迟,这使得j++的操作无效了。 |
|
返回顶楼 | |
发表时间:2010-06-02
最后修改:2010-06-02
我不知道这跟大家说的SCJP有多大的关系,这里所展示出来的考试题目,完全是基于一个开发人员对于java基础的理解程度,并且有可扩展性,可以深入交流下去的一个通道,并不是拿这些题能得出什么答案的角度来看这些题目的。
我想大家对这些题的理解方向与我一开始的目的有所偏移了,呵呵,不知道大家是怎么理解的,萝卜青菜各有所爱,我认为是好的题目大家不认为,当然可以理解,但是也没有必要说些风凉话吧。 我一开始也就阐明了这些题目的用意和观点。 如果大家愿意换个角度去思考问题,并不是从题目的答案这个角度去看待这些问题,而是从一个java程序员从java底层实现细节角度去思考,我想对每个人来说还是有利用和学习的价值,正因为这个目的,我才拿出来跟大家分享,请不要误解了我的用意,谢谢各位了。 如果不以这个角度去看待这些问题,我在思考着是否还有必要拿一开始没有给出的那些题目出来,从我个人的角度来讲,我觉得对于一个程序员还是非常有帮助的题目。 在大家看来这些题是简单,而且有些令人难以接受,拿这么变态的题目出来考大家,愤愤不平的,有这种心理是正常的,毕竟不是所有人都跟你有相同的观点和看法。我个人觉得这些题答得好可以作为之后面试交流的一个铺垫,答得不好,那说明基础不够扎实,每个考题都有它背后蕴藏的用意,请不要忽略一个简单的问题所带来的一系列问题,善于思考才能使人进步噢。 我只是借此机会能跟大家有所交流,能学到很多的东西,能学到很多东西。 |
|
返回顶楼 | |
发表时间:2010-06-02
原来我一直看的都是高级程序员的面试题...
|
|
返回顶楼 | |