【程序员研究院每日一问文娱部】Integer age = 18,"18".equals(age)是true还是false?

今天面试了一个高级程序员,问了很高大尚的问题,比如JVM的优化手段,心得、Dubbo的生态圈,RPC的优势、较SpringCloud如何等,话锋一转,问了如下的问题:

Integer age = 18, "18".equals(age)是true还是false,为什么?

然后回答是~ _ ~
说那么多不如上代码



运行代码输出:


image.png

为什么为输出false?

接下看下equals的方法


equals方法

红框中的大概意思就是:字符串与指定对象进行比较,指定的对象不能是NULL且是String(字符)对象,如果它们的字符序列相同,则返回true,否则为false

从概念上说,Java字符串就是Unicode的字符序列。如:“java"串就是由Unicode字符j、a、v、a组成。

回到上面问题,age被定义为Integer(整型),所以与字符18存在不同的序列,也就是说equals比较是对象的序列比较。
如下:



声明:原创,欢迎转载~! 帮忙点关注我,谢谢~!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容