今天面试了一个高级程序员,问了很高大尚的问题,比如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比较是对象的序列比较。
如下:
声明:原创,欢迎转载~! 帮忙点关注我,谢谢~!
网友评论