java==與equals的區別
阿新 • • 發佈:2018-12-20
==號比較引用型別比較的是地址值是否相同 equals:比較引用型別預設也是比較地址值是否相同,而String類重寫了equals()方法,比較的是內容是否相同。
package name; public class Text02 { public static void main(String[] args) { String s1="hello"; String s2="word"; String s3="helloword"; System.out.println(s3==s1+s2); System.out.println(s3.equals(s1+s2)); System.out.println(s3=="hello"+"word"); System.out.println(s3.equals("hello"+"word")); } }
執行結果為 false true true true 字串如果是變數相加,先開空間,再拼接,System.out.println(s3s1+s2);中s1s2是變數,開空間再比較地址值自然不同。 字串如果是常量相加,是先加,然後在常量池找,如果有就直接返回,否則,就建立。System.out.println(s3"hello"+“word”);helloword是常量。