java String的“==”和equals的区别 (第一篇博客)

==和equals都是有比较是否相等的作用,但是它们二者有什么区别呢?

废话不多说,直接戳重点

==比较的是地址,equals比较的是内容

但是要注意的是,在java虚拟机中含有字符串池(直接量在此池内),相同内容的字符串直接量对应为相同的对象。。。说得是不是有点抽象,举例来说明一下吧


String s1="hello";
String s2=new String ("hello");
s1=="hello";//true ,因为都指向直接量"hello"
s1==s2;//false ,因为s1指向字符串池中的字符串,而s2是new出来的一个实例,二者指向的对象/            //不一样,也就是它们的地址不一样

equals就比较容易理解了,只要内容相同,则返回ture,==内容相同不一定是true,初学者很容易在这里犯错,比如上面的例子

本文出自 “kinghacker” 博客,请务必保留此出处http://kinghacker.blog.51cto.com/7767090/1622735

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。