杈撳嚭緇撴灉錛?BR>---------- Run ----------
s1 s2 equal
strArray equal
strArray2 equal
Output completed (1 sec consumed) - Normal Termination
棣栧厛錛屽悇浣嶅簲璇ユ槑鐧芥渶鍩虹鐨勪笢瑗?==瀹炵幇鐨勬瘮杈冩槸嫻呮瘮杈冿紝灝辨槸闈瀝eference鎸囧悜鐨勫叿浣撳璞″唴瀹癸紝鑰屾槸鏄惁鎸囧悜浜嗗悓涓涓璞°傜浜岋紝String綾誨瀷琚璁′負(fù)闈炲彲鍙樼被錛屽氨鏄 String s1 = "hi";涓嶴tring s2 = "hi";鍏跺疄鎸囧悜浜嗗悓涓涓璞★紝鍙湁鐢╪ew鏋勯犲嚱鏁扮殑鏃跺欐墠浼?xì)漶旂敓鏂扮殑瀵硅薄锛岃屼笉綆″唴瀹規(guī)槸鍚﹀凡緇忓湪鍐呭瓨涓瓨鍦ㄣ傚涓嬫枃瀛楅槓榪頒簡涓浜涳細(xì)
s = new String("Initial Value");
姣忔閮戒細(xì)璋冪敤鏋勯犲櫒錛岀敓鎴愭柊瀵硅薄錛屾ц兘浣庝笅涓斿唴瀛樺紑閿澶э紝騫朵笖娌℃湁鎰忎箟錛屽洜涓篠tring瀵硅薄涓嶅彲鏀瑰彉錛屾墍浠ュ浜庡唴瀹圭浉鍚岀殑瀛楃涓詫紝鍙涓涓猄tring瀵硅薄鏉ヨ〃紺哄氨鍙互浜嗐備篃灝辮錛屽嬈¤皟鐢ㄤ笂闈㈢殑鏋勯犲櫒鍒涘緩澶氫釜瀵硅薄錛屼粬浠殑String綾誨瀷灞炴閮芥寚鍚戝悓涓涓璞°?
涓婇潰鐨勭粨璁鴻繕鍩轟簬榪欐牱涓涓簨瀹烇細(xì)瀵逛簬瀛楃涓插父閲忥紝濡傛灉鍐呭鐩稿悓錛孞ava璁や負(fù)瀹冧滑浠h〃鍚屼竴涓猄tring瀵硅薄銆傝岀敤鍏抽敭瀛梟ew璋冪敤鏋勯犲櫒錛屾繪槸浼?xì)鍒涘晦Z竴涓柊鐨勫璞★紝鏃犺鍐呭鏄惁鐩稿悓
ok錛屽洖鍒?/FONT>鎴戜滑鐨勮瘽棰樹笂鏉tring[] s2 = {"hi","hi","hi","hi","hi"};鏄惁浜х敓浜?涓笉鍚岀殑瀵硅薄鍛紵鎴戝啓鐨勭畝鍗曠殑嫻嬭瘯浠g爜
String[] strArray2 = {"hello","hello"};
if(strArray2[0]==strArray2[1]) System.out.println("strArray2 equal");
鐨勭粨鏋滃ぇ瀹跺簲璇ュ緱鍑轟簡緇撹浜嗗惂銆?BR>閭d箞錛宐ruce緇欏嚭鐨勪唬鐮佺殑緇撴灉涔嬫墍浠ヤ負(fù)true灝辨槸鍥犱負(fù)錛岃繖涔堝涓暟緇勪腑鐨勬垚鍛?hi"鍏跺疄閮芥槸鍚屼竴涓璞°傞偅涔堟垜浠戶緇湅Arrays.equals鏄惁姣旇緝鐨勫唴瀹瑰憿錛?BR>SRC錛?BR>public static boolean equals(Object[] a, Object[] a2) {
if (a==a2)
return true; //濡傛灉鎸囧悜鍚屼竴瀵硅薄錛屽綋鐒舵槸鐩稿悓鐨勶紝榪斿洖true
if (a==null || a2==null)
return false; //濡傛灉涓簄ull灝辨病鏈夌浉絳夌殑涓璇達(dá)紝false
int length = a.length;
if (a2.length != length) //闀垮害涓嶅悓
return false;
for (int i=0; i<length; i++) {
Object o1 = a[i];
Object o2 = a2[i];
if (!(o1==null ? o2==null : o1.equals(o2))) //姝ゅ涓哄叧閿紝object鐨別quals姣旇緝錛孉rrays.equals騫舵病鏈変笓闂ㄤ負(fù)String綾誨瀷閲嶈澆姝ゆ柟娉曪紝鍏ㄩ儴閮戒緷璧朞bject鐨勬柟娉曟瘮杈?BR> return false;
}
return true;
}
閭d箞鎴戜滑鍐嶇湅鐪婳bject榪欎釜鏍?wèi)鏍圭殑equals鏂規(guī)硶鍚э細(xì)
public boolean equals(Object obj) {
return (this == obj);
}
鐭煭鍑犺浠g爜錛屼絾鏄紝鏄祬姣旇緝姣棤鐤戦棶錛屾墍浠ワ紝bruce璇寸殑錛屼緷璧栫殑鏄疧bject.equals錛屾瘮杈冪殑鏄唴瀹癸紝鏇存槸閿欒鐨勩?BR>浣嗘槸蹇呴』寮鴻皟鐨勬槸錛屽綋String鏁扮粍浼犻掕繘鏉ョ殑鏃跺欙紝鐢變簬java鐨凴TTI鎵ц鏈熷瀷鍒鯨璇嗭紝Arryas.equals璋冪敤鐨勫叾瀹炴槸String.equals鏂規(guī)硶錛岃孲tring.equals鏂規(guī)硶鏄瘮杈冨唴瀹圭殑錛屾墍浠ワ紝姝ゅ鎴戞兂鏄痓ruce娌℃湁璇存槑鐧斤紝鑰屽張鍋忓亸鍒椾婦浜哠tring鐨勪緥瀛愩傚鏋滄槸鑷繁鍐欑殑綾繪湁娌℃湁澶嶅啓equals鏂規(guī)硶錛屾鏃跺氨璋冪敤Object.equals浜嗭紝閭d箞鏍規(guī)湰涓嶅彲鑳芥瘮杈冨唴瀹癸紝鎵浠rrays.equals澶у涓瀹氳鐭ラ亾鎬庝箞鍥炰簨鍐嶇敤銆?/P>