`

JAVA面试题解惑系列(十一)——这些运算符你是否还记得?

阅读更多
removed.

请到博文下载PDF文件:http://zangweiren.iteye.com/blog/241218
39
11
分享到:
评论
41 楼 hansonzhe 2014-03-23  
老师,这些年您去哪了?为什么没有12集以后了啊?看完您的总结,感觉停不下来啊,好想再往下看,从哪可以找到吗?谢谢您。
40 楼 zhengyutong 2009-03-13  
感谢楼主,这个系列教程真的很有用。我已经全部拷了下来,正在用心学习。

再次感谢楼主!
39 楼 colin_beginner 2009-01-07  
樓主什么時候有下一章:JAVA面试题解惑系列(十二)——你真的了解数组吗?
期待哦~
38 楼 xiangzhetaiy 2008-12-15  
辛苦了!
37 楼 xiangzhetaiy 2008-12-15  
辛苦了!
36 楼 jxausea 2008-12-10  
还是蛮不错的
35 楼 Ronald9 2008-12-07  
全是基础知识.

SCJP中全有.
34 楼 week 2008-10-29  
下一期预告:JAVA面试题解惑系列(十二)——你真的了解数组吗?

为什么没有见到呀?
我对你的这些题都很有兴趣,希望你多写一些。
我等着你!
33 楼 gouf 2008-09-06  
感谢
复习基础啦, 很多细节以前没注意到
32 楼 夜行者 2008-08-29  
恩,不错啊,顶顶
31 楼 wuchunhui 2008-08-29  
30 楼 lin_llx 2008-08-29  
我想到以前看见过的一个关于Java与C++的++运算不同的文章。同样一段代码。
i=0;
i=i++;
print i;
Java里面,输出是0;
C++里面,输出是1;
貌似原因涉及到了Java虚拟机汇编语言中关于赋值语句的解释很独特。。
29 楼 spacefly 2008-08-28  
好,好,好!!!
好好向楼主学习,天天向高手接近!!!
28 楼 backbase 2008-08-28  
楼主又发布新文章了,让我们这些刚入职业的新手受益匪浅,辛苦了,谢谢楼主!永远支持你!
27 楼 davepkxxx 2008-08-27  
我认为是不要研究那些比较容易混淆或者让人误会的书写方法
26 楼 臧圩人 2008-08-27  
回复yellowteeth:

诚如wykris所理解的,我的本意是以面试题为出发点发散开来,总结与之相关的JAVA知识,与大家共享。任何人写文章都有其针对性与适用范围的,我是就面试题讲JAVA知识,不是写入门教材,也并不是提倡大家按照面试题中出现的方式来编写代码。面试题只是一个载体,我们的目的不是会做更多的面试题,而是能深刻理解面试题背后隐藏的知识。

非常感谢你的中肯意见,对于你屡次提到的这句话我深表赞同:
引用
我们应该把时间化在扩展你的知识面上,而不是这一些死板的细节和术语上。

25 楼 臧圩人 2008-08-26  
CSDN网友wykris回复yellowteeth道:

开头第一句话:“有些运算符在JAVA语言中存在着,但是在实际开发中我们或许很少用到它们,在面试题中却时常出现它们的身影,对于这些运算符的含义和用法,你是否还记得呢? ”


这是面试题解惑系列……不是Java入门系列……
项目中用不到不代表笔试题里没有这种题,您明显回帖不看帖
24 楼 臧圩人 2008-08-26  
CSDN网友yellowteeth写道:

zangweiren,我无意批评你这一贴,但我看有这么多人跟贴,并说要支持,我想不能再有初学者被误导了。我只是就事论事说一下:
其实我只看了第一题,我就不愿再向下看了,因为你写的让我想到了在学校的考试的题目,死板,没有实际的意义,所以我只看了一题,我再也不想向下看了。我想你也应知道:当今编程的方向不是技术性,是可读性,和编译效率相比,程序的可读性的高于编译效率!除非编译效率有数量级的提高。

int j = i++ + ++i; 

这想有人会在实际开发中用这样的语句吗?你这样写的目的是什么?你可能会说:这样写程序运行效率会高一些。晕倒,你告诉我快多少?0.001秒?有意思吗?可能过两年后你移值你的程序时,你自已都要化10分钟看这几句说的什么意思?或许还要看一下新版本的java下,这几句的编译的结果是不是你两年前想要的效果?
我记得张老师说过的一句话:我们应该把时间化在扩展你的知识面上,而不是这一些死板的细节和术语上。

因为我深受过这种苦味,那时我初学c++,总是被这一类的语句j=i+++++i苦扰,当我以为我搞明白了后,发现换一个系统后,(java这方法比以C++好多了)运行结果又不一样了,所以我觉得没有意思,还是用张老师的那句话结尾吧:我们应该把时间化在扩展你的知识面上,而不是这一些死板的细节和术语上。
23 楼 臧圩人 2008-08-26  
CSDN网友vlemfun写道:

实际操作了一下
运算结果和这个不一样

在第二个例子中,对于int j=i++ + ++i;,首先运行i++,i的值0被用于加运算(+),之后i自增值变为1,然后运行++i,i先自增变为2,之后被用于加运算,最后将i两次的值相加的结果1+2=3赋给j,因此这行代码运行完毕后i=2、j=3;对于int k=--i + i--;用一样的思路分析,具体过程在此不再赘述,结果应该是i=0、k=2。


……
22 楼 臧圩人 2008-08-26  
CSDN网友ZangXT写道:

尽量不要对除int和long之外的类型使用++运算符,可能带来隐含的错误。

相关推荐

Global site tag (gtag.js) - Google Analytics