如题,相信这个问题曾经上无数Java程序员感到迷惑,其实,只要清楚以下几点,就能很好的区分他们的不同,在适当的时候选择用适当的方法了:
equals 方法:(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等。
==:用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true
Eg:
s1 = new String("sony"); //创建的是字符串对象
s1.equals("sony"); //返回true 比较s1对象的内容是不是"sony”.
s1 == "sony" //返回false 比较s1对象在内存中存放的地址和"sony”的地址是不是同一个地址
//如果
s1 = "sony"; //注意这种赋值方式和上面的区别
s1 == "sony" //返回true