关于==与equals的区别从两点来说:
1,对于字符串来说
==比较两个变量本身的值,即变量在内存中存放的首地址
equals()比较比较字符串中所包含的内容是否相同(注意,在比较时可能要对字符串进行trim()处理,因为我们在数据库中存放进去的数据可能是带有空格的)。(注意:在stringbuffer中没有重写equals方法,而在string中是对它进行过重写的,没有重写的意思是比较的和==是相同的都不是比较地址而不是内容,只有重写了才是比较内容的)
2,对于非字符串来说
它们是相同的都是用来比较在堆内存中的首地址是否相同的,即用来比较两个引用对象是否指向同一个对象
还可以从另外的方面来讲:
1,如果数据是基本类型的话,只能用==来比较。不能用equals
2,对于基本类型的包装类,比如Boolean,Character,Byte,Shot,Integer,Long,Float,Double等的引用变量,==是比较地址的,而equals是比较内容的

被折叠的 条评论
为什么被折叠?



