0°

让人疑惑的代码,竟成大多公司面试题热门!

内容预览:
  • 始发于微信公众号: 程序员大咖 小编今天给大家看的这个笔试题 当年可是...~
  • 再来看看我们之前的代码: 以下代码执行结果: 看完这个,是不是明白了...~
  • ↙点击“阅读原文”,加入  『iOS开发』~

始发于微信公众号: 程序员大咖

让人疑惑的代码,竟成大多公司面试题热门!


小编今天给大家看的这个笔试题

当年可是火遍大江南北

不妨你先看看到底会不会

这是关于一段令人疑惑的Java代码

真题在此,谁敢不服

让人疑惑的代码,竟成大多公司面试题热门!


你觉得简单,那执行一下

真的能如你所愿?


让人疑惑的代码,竟成大多公司面试题热门!

一个是true,一个是false

这是为什么呢?

和大多数人心里想的不一样吧!


心中是不是有一万个草泥马?

不少不懂的就装B去百度了……

让人疑惑的代码,竟成大多公司面试题热门!


这里给解释一下:

根据Java编译机制,.java文件在编译以后会生成.class文件给JVM加载执行,于是找到.class文件,反编译看了一下,发现编译器在编译我们的代码时,很调皮(聪明的)的在我们声明的变量加上了valueOf方法 ,代码变成了如下:


让人疑惑的代码,竟成大多公司面试题热门!

valueOf方法的实现原理

让人疑惑的代码,竟成大多公司面试题热门!


我们发现,Integer的作者在写这个类时,为了避免重复创建对象,对Integer值做了缓存,如果这个值在缓存范围内,直接返回缓存好的对象,否则new一个新的对象返回,那究竟这个缓存到底缓存了哪些内容呢?看一下IntegerCache这个类:

让人疑惑的代码,竟成大多公司面试题热门!

这是一个内部静态类,该类只能在Integer这个类的内部访问,这个类在初始化的时候,会去加载JVM的配置,如果有值,就用配置的值初始化缓存数组,否则就缓存-128到127之间的值。

再来看看我们之前的代码:

让人疑惑的代码,竟成大多公司面试题热门!


以下代码执行结果:

让人疑惑的代码,竟成大多公司面试题热门!

看完这个,是不是明白了呢

让人疑惑的代码,竟成大多公司面试题热门!

  • 来自:网络

  • 程序员大咖整理发布,转载请联系作者获得授权

↙点击“阅读原文”,加入 

『iOS开发』

和大佬一起学习网络安全知识

以上就是:让人疑惑的代码,竟成大多公司面试题热门! 的全部内容

本站部分内容来源于互联网和用户投稿,如有侵权请联系我们删除,谢谢^^
Email:[email protected]


0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论