System.out.println("str1等于str2:"+(str1.equals(str2))); 解释一下equals
"=="比较内存地址值
equals比较内容,"=="比较内存地址,答案是布尔型
str1.equals(str2)这句是判断str1和str2是否完全相同,答案是布尔型:yes/no.
最简单的,比较基本类型==和equals()都可以用,但是equals运行慢(没事找事才用这个)。比较非基本类型都用equals()来比较是否相同,不能用==
String的equals表示,比较两个变量的引用地址是否相同
1.根本上讲equals和==没有区别,在Object类中,equals()方法就是先if语句判断是否==,如果不相等再把字符拆成char型逐位比较。如果都相等就是true,否则false。(这是程序上的区别。)
2.==是判断两个字符的地址是否相同(如果你知道基本类型的保存方式就会更明白,简单的说就是同一种字符在堆中只会保存一个,后来的相同字符都会接到这一个地址上),也就是说,equals先判断两个字符地址是否相同,地址不相同再实际比较字符是否真的不同。(这是宏观上的区别)
注意:但是不少java自带的类中,equals()都重写过,不一定都一样。
equals用来比较两个字符或数字是否相等
equals的意思的是等于,相当于调用了子函数;