当前位置:首页>新奇发现>文章内容

“变态的”Java面试题

2017/8/10分类:新奇发现 张孝帅

  “变态的”Java面试题

  因为java运算符存在优先级关系,因此经常看到有些学生在做SCJP或者某些公司的面试题,有如下Java代码:int a=5; int b=4; int c=a++--b*++a/b-->>2%a--;,c的值是多少?这样的语句太恐怖了,即使多年的老程序员看到这样的语句也会眩晕。

  这样的代码只能在考试中出现,如果笔者带过的team里有member写这样的代码,恐怕他马上就得走人了,因为他完全不懂程序开发:源代码就是一份文档,源代码的可读性比代码运行效率更重要。因此在此要提醒读者:

  1,不要把一个表达式写的过于复杂,如果一个表达式过于复杂,则把它分成几步完成。

  2.不要过多的以来运算符的优先级来控制表达式的执行顺序,这样的可读性太差,尽量使用()来控制表达式的执行顺序

  有些学院喜欢做一些千奇百怪的Java题目,例如刚刚提到的题目,还有如“在&abc、$xx、1abc中,那几个标识符是合法的标识符?”,这也是一个相当糟糕的题目。实际上再写一个Java程序时,根本不允许使用这些千奇百怪的标识符!

  想起一个寓言:有人问一个有多年航海经验的船长,这条线的暗礁你都非常清楚吧?船长的回答是:我不知道,我只知道哪里是深水航线。这是很有哲理的故事,它告诉我们写程序时,尽量采用良好的编码风格,养成良好的习惯;不要随心所欲地乱写,不要把所有的错误都犯完!世界上对的路可能只有一条,错的路却可能有成千上万条,不要成为别人的前车之鉴!

  国内的编程者与国外的编程者有一个很大的差别,国外的编程者往往关心我能写什么程序?而国内的编程者往往更关心我能考什么证书?特别是一些大学生,非常热衷于考证!有时候很想告诉他们:你们的大学毕业证是国家教育部发的,难道还不够好吗?为什么还要去考一些杂七杂八的证?因为有人要验证,所以才会出现这些乱七八糟的Java考题。请大家记住学习编程的最终目的:是用来编写程序解决实际问题,而不是用来考证的。

  注:文章来自《疯狂Java讲义》第3版

java学习书籍推荐,点我有惊哟!

java疯狂讲义

关于博主

小小小帅个人博客

博主:张孝帅

简介:这很小小帅