澶у濂?灏忛槼鏉ヤ负澶у瑙g瓟浠ヤ笂鐨勯棶棰樸€俥quals锛宔quals杩欎釜寰堝浜鸿繕涓嶇煡閬?鐜板湪璁╂垜浠竴璧锋潵鐪嬬湅鍚э紒
1銆?equals() 鍦↗ava涓垽鏂槸鍚︾浉绛夛紝涓?== 鐨勫尯鍒槸 .equals() 鍙垽鏂€兼槸鍚︾浉绛夛紝涓嶇涓よ€呮槸鍚﹀瓨鍦ㄥ悓涓€鍦板潃銆?/p>
2銆佽€?== 鍒欐槸鍒ゆ柇鍊间笌瀛樺湪鍦板潃閮藉緱鐩哥瓑鎵╁睍璧勬枡锛氱敱equals鐨勬簮鐮佸彲浠ョ湅鍑鸿繖閲屽畾涔夌殑equals涓?=鏄瓑鏁堢殑锛圤bject绫讳腑鐨別quals娌′粈涔堝尯鍒級锛屼笉鍚岀殑鍘熷洜灏卞湪浜庢湁浜涚被锛堝儚string銆両nteger绛夌被锛夊equals杩涜浜嗛噸鍐欙紝浣嗘槸娌℃湁瀵筫quals杩涜閲嶅啓鐨勭被锛堟瘮濡傛垜浠嚜宸卞啓鐨勭被锛夊氨鍙兘浠嶰bject绫讳腑缁ф壙equals鏂规硶锛屽叾equals鏂规硶涓?=灏变篃鏄瓑鏁堢殑锛岄櫎闈炴垜浠湪姝ょ被涓噸鍐檈quals銆?/p>
3銆佸彟澶栵紝"=="姣?equals"杩愯閫熷害蹇?鍥犱负"=="鍙槸姣旇緝寮曠敤銆?/p>
4銆?.equals鐨勬湰鎰忊€斺€斿嵆鍦∣bject瀵硅薄涓畾涔夌殑equals()鏂规硶鏈変粈涔堟牱鐨勬剰涔夈€?/p>
5銆侊紙姝ゅ鍏堥檮涓?=鐨勪綔鐢紝鍚庨潰浠嶆湁鍙欒堪銆?/p>
6銆佸洜涓?=鍜宔quals()鏂规硶鐨勫叧绯绘槸寰堝瘑鍒囩殑锛屽悗闈㈡湁鎴戣嚜宸辩殑鐪嬫硶銆?/p>
7銆? ==鐢ㄤ簬姣旇緝寮曠敤鍜屾瘮杈冨熀鏈暟鎹被鍨嬫椂鍏锋湁涓嶅悓鐨勫姛鑳斤細 姣旇緝鍩烘湰鏁版嵁绫诲瀷锛屽鏋滀袱涓€肩浉鍚岋紝鍒欑粨鏋滀负true 鑰屽湪姣旇緝寮曠敤鏃讹紝濡傛灉寮曠敤鎸囧悜鍐呭瓨涓殑鍚屼竴瀵硅薄锛岀粨鏋滀负true锛? public boolean equals(object obj) 鍏舵瘮杈冭鍒欎负锛氬綋鍙傛暟obj寮曠敤鐨勫璞′笌褰撳墠瀵硅薄涓哄悓涓€涓璞℃椂锛屽氨杩斿洖true,鍚﹀垯杩斿洖false.public class fish { private int weight; private string color; public fish(int weight, string color) { this.color = color; this.weight = weight; } public int getweight() { return weight; } public void setweight(int weight) { this.weight = weight; } public string getcolor() { return color; } public void setcolor(string color) { this.color = color; }}public class equalstest { public static void main(string[] args) { fish f1 = new fish(1, "blue"); fish f2 = new fish(1, "blue"); system.out.println(f1 == f2); system.out.println(f1.equals(f2)); }}鈥斺€斺€斺€斺€斺€旇繍琛岀粨鏋滀负鈥斺€斺€斺€斺€斺€攆alsefalse鐢辨鍙锛宔quals()鏂规硶鐨勬湰鎰忎负纭畾涓や釜瀵硅薄鐨勫紩鐢ㄦ槸鍚︾浉鍚屻€?/p>
8銆?.鑰孞dk绫讳腑鏈変竴浜涚被瑕嗙洊浜唎ject绫荤殑equals()鏂规硶锛屾瘮杈冭鍒欎负锛氬鏋滀袱涓璞$殑绫诲瀷涓€鑷达紝骞朵笖鍐呭涓€鑷达紝鍒欒繑鍥瀟rue,杩欎簺绫绘湁锛歫ava.io.file,java.util.date,java.lang.string,鍖呰绫伙紙integer,double绛夛級public class equalstest { public static void main(string[] args) { string s1=new string("sss"); string s2=new string("sss"); system.out.println(s1==s2); system.out.println(s1.equals(s2)); }}鈥斺€斺€斺€斺€斺€斺€斺€旇繍琛岀粨鏋滀负鈥斺€斺€斺€斺€斺€攆alsetrue鐢辨鐭ラ亾锛屽湪string涓璭quals()鏂规硶琚繘琛屼簡瑕嗙洊锛屼娇鍏舵剰涔夊彉涓烘瘮杈冧袱涓璞$殑鍐呭鏄惁涓€鑷?.濡傛灉鎴戜滑瑕佽嚜宸辫鐩杄quals()鏂规硶锛岃鍏舵瘮杈冨唴瀹规垨鑰呮湁鍒殑浣跨敤鏂规硶锛堝綋鐒舵垜浠竴鑸兘鏄敤浜庢瘮杈冨唴瀹圭殑锛屼絾鏄鐩栫殑鏂规硶涓湡姝g殑瀹炵幇绌剁珶鏄粈涔堟牱鐨勶紝璋佺煡閬撳憿o(鈭鈭?o~锛塸ublic class fish { private int weight; private string color; public fish(int weight, string color) { this.color = color; this.weight = weight; } @override public int hashcode() { final int prime = 31; int result = 1; result = prime * result ((color == null) ? 0 : color.hashcode()); result = prime * result weight; return result; } @override public boolean equals(object obj) { if (this == obj) return true; if (obj == null) return false; if (getclass() != obj.getclass()) return false; fish other = (fish) obj; if (color == null) { if (other.color != null) return false; } else if (!color.equals(other.color)) return false; if (weight != other.weight) return false; return true; } public int getweight() { return weight; } public void setweight(int weight) { this.weight = weight; } public string getcolor() { return color; } public void setcolor(string color) { this.color = color; }}public class equalstest { public static void main(string[] args) { fish f1 = new fish(1, "blue"); fish f2 = new fish(1, "blue"); system.out.println(f1 == f2); system.out.println(f1.equals(f2)); }}鈥斺€斺€斺€斺€斺€旇繍琛岀粨鏋滀负鈥斺€斺€斺€斺€斺€攆alsetrue姝や緥瀛愪腑鎴戝鍐欎簡equals()鏂规硶鍜宧ashcode()鏂规硶锛屼娇寰梕quals()鏂规硶鑴辩鐨勬湰鎰忥紝涓嶅啀鏄瘮杈冧袱涓璞$殑寮曠敤鏄惁鐩稿悓锛岃€屾槸姣旇緝鍏跺唴瀹规槸鍚︾浉鍚屻€?/p>
9銆佷互涓婂唴瀹逛负涓€鑸功涓婄殑鎬荤粨锛屼笅闈㈡槸鎴戣嚜宸辨兂鍒扮殑涓€浜涗笢瑗裤€?/p>
10銆佹垜浠彲浠ョ煡閬撹绠楁満褰掓牴鍒板簳杩涜鐨勫彧鏄竴浜涗簩杩涘埗鏁扮殑涓庢垨闈炶繍绠楋紝鍔犳硶涔樻硶杩愮畻銆?/p>
11銆佺敱姝ゆ湁浜嗕簺鍩烘湰鐨勮繍绠楃锛屾墍鏈夌殑鍑芥暟鏈川涓婂叾瀹炵幇閮芥槸浣跨敤鍩烘湰杩愮畻绗︽潵瀹炵幇鐨勩€?/p>
12銆佽€?=鏄熀鏈繍绠楃涓殑涓€涓紝瀹冪殑浣滅敤锛氱敤浜庢瘮杈冨紩鐢ㄥ拰姣旇緝鍩烘湰鏁版嵁绫诲瀷鏃跺叿鏈変笉鍚岀殑鍔熻兘锛? 姣旇緝鍩烘湰鏁版嵁绫诲瀷锛屽鏋滀袱涓€肩浉鍚岋紝鍒欑粨鏋滀负true 鑰屽湪姣旇緝寮曠敤鏃讹紝濡傛灉寮曠敤鎸囧悜鍐呭瓨涓殑鍚屼竴瀵硅薄锛岀粨鏋滀负true鑰宔quals()浣滀负鏂规硶锛屾垜浠彲浠ユ帹娴嬬煡閬擄紝瀹冨叾涓殑瀹炵幇鎵€浣跨敤鐨勮偗瀹氭槸==杩愮畻绗︺€?/p>
13銆佸啀杩涗竴姝ョ殑鎬濊€冿紝equals()鏈剰涓嶆鏄?=杩愮畻绗﹁繘琛屽璞℃瘮杈冩椂鍊欑殑浣滅敤鍚椼€?/p>
14銆侀偅涔堬紝鏃㈢劧鏄袱鑰呮湁鍚屾牱鐨勪綔鐢紝涓轰粈涔堣繕瑕佸紕鍑轰竴涓猠quals()鏂规硶鏉ュ憿銆?/p>
15銆佸洜涓?=杩愮畻绗︿笉鍏佽鎴戜滑杩涜瑕嗙洊锛屼篃灏辨槸璇村畠闄愬埗浜嗘垜浠殑琛ㄨ揪銆?/p>
16銆佸湪涓婇潰鐨勭涓変釜渚嬪瓙涓紝鎴戜滑澶嶅啓equals()鏂规硶锛岃揪鍒版瘮杈冨璞″唴瀹规槸鍚︾浉鍚岀殑鐩殑銆?/p>
17銆佽€岃繖浜涢€氳繃==杩愮畻绗︽槸鍋氫笉鍒扮殑銆?/p>
18銆?.==姣旇緝鐨勬槸鍦板潃2.鑷充簬涓哄暐姣旇緝鐨勬槸鍦板潃锛熶笉鏄唴瀹广€?/p>
19銆佽繖涓槸java瑙勫畾鐨勶紝涓嶆槸鎴戜滑鍙互鎺у埗鐨?.璇磂quals姣旇緝鐨勬槸鍊兼槸瀹屽叏涓嶅鐨勩€?/p>
20銆佽鐪嬩粬鏄惁鏈夐噸鍐檕bject鐨別quals鏂规硶銆?/p>
21銆佸鏋滄病鏈夛紝浠栨瘮杈冪殑鑲畾鏄篃鍦板潃銆?/p>
22銆佸鏋滄湁锛岄偅涔堝緢鏈夊彲鑳戒粬姣旇緝鐨勬槸鍊硷紝浣嗕篃涓嶅敖鐒?銆?/p>
23銆佸彲浠ョ湅浠栫殑婧愮爜銆?/p>
24銆佹瘮濡侷nteger a=1.doubleb=1;a.equals(b)閭h偗瀹氭槸false銆?/p>
25銆佸洜涓轰粬鍦ㄩ噸鍐欐椂杩樺垽鏂簡绫诲瀷鎮ㄥソ锛屽湪java浠ュ強c#璇█涓紝杩欎釜鏂规硶閮界敤浜庡垽鏂袱涓€兼槸鍚︾浉绛夈€?/p>
26銆乤.equals("b")锛宩ava涓父鐢ㄨ鍒ゆ柇瀛楃涓茬殑鍊兼槸鍚︿竴鑷淬€?/p>
27銆乮f(b1==b2)鏄瘮杈僢1璺焍2鐨勫湴鍧€锛岄偅褰撶劧鏄笉鍚岀殑鍜紝鎵€浠ユ墽琛宔lse锛岀劧鍚巌f(b1.equals(b2))鏄瘮杈僢1涓巄2鐨勫€硷紝瀹冧滑涓や釜鐨勫€奸兘 鏄痶rue銆?/p>
28銆佺浉绛夋槸鍚э紝鎵€浠ヨ緭鍑篊锛岋紝鍛靛懙 锛岀幇鍦ㄧ悊瑙d簡鍚楋紵銆?/p>
鏈枃鍒版鍒嗕韩瀹屾瘯锛屽笇鏈涘澶у鏈夋墍甯姪銆?/p>