论坛首页 入门技术论坛

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

浏览 53356 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-06-02  
好好回切看看SCJP的试题吧
0 请登录后投票
   发表时间:2010-06-02  
这种题纯属刁难
0 请登录后投票
   发表时间: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);
    }
}

 

求打印结果?


请说说为什么 打印是 0


那我先问问你,j++和++j的区别在哪里? 明白了这两者的区别我想这道题应该就不难得出正确结果了。

 j= j++;

相当于 k = j;

          j = j+1;

          j = k; 所以等于0。我是这么理解的。

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

    我只是借此机会能跟大家有所交流,能学到很多的东西,能学到很多东西。
0 请登录后投票
   发表时间:2010-06-02  
原来我一直看的都是高级程序员的面试题...

0 请登录后投票
论坛首页 入门技术版

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