设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

你不知道Java的10件事

2014-11-20 10:31| 发布者: joejoe0332| 查看: 5268| 评论: 0|原作者: 黑葱|来自: CSDN CODE

摘要: 你从一开始就在使用Java吗?你是否还记得java被称作为”Oak”的时期?那时,面向对象仍然是一个热门的话题,使用C++的人们都认为Java没有任何机会,Applets 也只是一件事情。我敢打赌你肯定不知道以下一半的事情。现 ...


3. 这些都是二维数组


  这是真的。你可能无法立刻理解上面方法的返回类型,但它们都是一样的。类似于下面的方法:



  你肯定认为这疯了。想象一下,为上面的方法使用 JSR-308 / Java 8 的类型注解。句法的数量将会激增。



4. 你不明白条件表达式

  你认为你在使用条件表达式时明白一切吗?让我告诉你吧,你不明白。大多数人都会认为下面两个代码片段是等价的:



  真的一样吗?



  不一样。我们来验证一下:



  程序的输出结果为:

1.0
  1


  没错!条件运算符在必要的时候将实现数据类型的提升。下面的语句将会抛出一个NullPointException。



  点这里获取更多细节。


5. 你也不明白复合赋值运算符

  看下面的代码:


  乍一看它们应该是等价的,但事实上不是。见 JSL(Java语言规范):

复合赋值表达式 E1 op= E2 与 E1 = (T)((E1) op (E2)) 是等价的,T的类型与E1相同,此外 E1仅计算一次。

  这真是太美了,我想引用Peter Lawrey's 关于堆栈溢出问题的回答:



6. 随机整数

  这是一个难题。不要参看解答,你能独立的解决问题吗?

  运行下面的代码:


  我有时候会得到如下输出:

922214548236183391933384

  这怎么可能?

  答案在这。通过反射覆盖 JDK's 的 Integercache,然后使用自动装箱和自动拆箱机制。


  运行上面的代码,你就可以得到类似的结果了。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部