锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 榪欓噷鐢ㄥ埌浜?/SPAN>JUnit錛岀敤鏉ユ祴璇?/SPAN>String pool銆?/SPAN>
絎竴涓祴璇曪紝璇存槑涓や釜String鏄悓涓涓?/SPAN>Object錛岋紙==灝辨槸鐢ㄦ潵姣旇緝object鐨?/SPAN>reference錛夈傝岀浜屼釜嫻嬭瘯鍒欒鏄庝袱涓?/SPAN>String Object涓嶅悓銆?/SPAN>
浼楁墍鍛ㄧ煡錛?/SPAN>Java鐨?/SPAN>String鏄?SPAN class=postbody>涓嶅彲鏀瑰彉鐨勫瓧絎︿覆瀵硅薄銆備負浜嗘彁楂樻晥鐜囷紝Java涓?/SPAN>String綾繪彁渚涗簡涓叉睜(String pool)銆傛濡傚ぇ瀹舵墍鐪嬪埌鐨勯偅鏍鳳紝鍦ㄧ涓涓?/SPAN>test涓氨浣跨敤浜嗕覆姹犮傚綋浣犻噸鏂板0鏄庝竴涓?/SPAN>String鍨嬪彉閲忎負abc鏃訛紝灝嗕嬌鐢ㄤ覆姹犻噷鍘熸潵鐨勯偅涓?/SPAN>abc錛岃屼笉閲嶆柊鍒嗛厤鍐呭瓨錛屼篃灝辨槸璇達紝string2涓?/SPAN>string1灝嗕細鎸囧悜鍚屼竴鍧楀唴瀛樸傛墍浠ョ粨鏋滀負true銆傚湪絎簩涓猼est case涓嬌鐢ㄤ簡鏅氬璞$殑澹版槑鏂瑰紡錛岀郴緇熷皢浼氫負string1鍜?/SPAN>string2鍚勫垎閰嶄竴鍧楀唴瀛樸傛墍浠ョ粨鏋滀負false銆?/SPAN>
緇撹錛氭垜浠瘮杈冧袱涓猄tring鐨勫鹼紝鏈濂界敤equals()鏂規硶錛岃屾渶濂戒笉瑕佷嬌鐢?=銆傝繖灝遍伩鍏嶄簡涓浜涗笉蹇呰鐨勯夯鐑︺傚彟澶栵紝澹版槑String鐨勬椂鍊欙紝鏈濂界敤=錛岃繖鏍峰氨鍙互浣撶幇String pool鐨勪綔鐢ㄤ簡銆?/FONT>
String鐨勭壒孌婁箣澶勫氨鏄畠鍙互鍍廼nt絳夌畝鍗曠被鍨嬩竴鏍鳳紝浣跨敤鈥?鈥濇潵鐢熸垚涓涓狾bject錛岃屼笉蹇呯敤new榪欎釜鍏抽敭瀛楋紝涓轟粈涔堝憿錛熷厛鏉ョ湅涓嬮潰鐨勪唬鐮侊細
import junit.framework.TestCase;
public class TestStringPool extends TestCase
{
private String string1;
private String string2;
protected void setUp()
{
string1 = "abc";
string2 = "abc";
}
public void testStringPool()
{
assertTrue(string1 == string2);
}
public void testNewString()
{
string1 = new String("abc");
string2 = new String("abc");
assertFalse("The objects don't use the
string pool", string1 == string2);
}
}
]]>
鍏蜂綋鏂規硶錛?/FONT>
鍦╳indows瀹夎鐩綍淇敼\system32\drivers\etc\hosts:鏂囦歡
鍦ㄦ枃浠墮噷鍔犱笂渚嬪榪欐牱鐨勫瓧孌?/FONT>
123.456.0.1 abcde
鍓嶉潰涓孌典負IP鍦板潃錛屽悗闈負涓涓換鎰忕殑server鍚嶅瓧錛屽彲浠ユ槸浠繪剰鐨勫瓧絎︿覆銆傜劧鍚庯紝鍦ㄦ墍鏈夌殑灞炴ф枃浠墮噷浣跨敤榪欎釜鍚嶅瓧銆備互鍚庡啀鎯蟲洿鏀箂erver錛屽氨鍙渶瑕佷慨鏀筯osts鏂囦歡灝辮浜嗐?/FONT>
鍏堟潵鐪嬩竴孌典唬鐮侊細
榪欐浠g爜鐪嬩笂鍘誨緢鏅氾紝浣嗘槸濡傛灉鐢?.4鍜?.5鍒嗗埆緙栬瘧灝變細鍑虹幇涓嶅悓鐨勭粨鏋溿傚厛鏉ヨ鐢?.4緙栬瘧鐨勬儏鍐碉細棣栧厛鐢?.4緙栬瘧錛岀紪璇戝櫒涓嶄細鎶ラ敊錛屽鏋滆繍琛岀殑璇濓紝鍓嶉潰涓や釜杈撳嚭璇彞浼氬垎鍒墦鍗扳?錛?鈥濓紝鑰岀涓変釜浼歵hrow涓涓狢lassCast exception. 鍥犱負Date涓嶈兘涓巓bject姣旇緝錛屼絾鏄負浠涔堣兘緙栬瘧閫氳繃鍛紵瀵熺湅JDK婧愪唬鐮佸氨鍙互鐭ラ亾浜嗭紝Date瀹炵幇浜咰omparable鎺ュ彛錛岃繖涓帴鍙d腑鐨凜ompareTo()鏂規硶鐨勫弬鏁板氨鏄疧bject銆傛墍浠ate涔熶笉寰椾笉鏈変竴涓互Object涓哄弬鏁扮殑CompareTo()鏂規硶錛屼絾鏄繖涓柟娉曟槸娌℃湁鎰忎箟鐨勶紝Date搴旇涓嶥ate姣旇緝錛屾墍浠ate榪欎釜Class閲岄潰灝卞嚭鐜頒簡涓や釜ComparaTo鏂規硶錛屼竴涓槸浠ate涓哄弬鏁幫紝鍙︿竴涓槸浠bject涓哄弬鏁幫紝榪欐槸1.4浠ュ墠錛屼笉寰椾笉閲囩敤鐨勬柟娉曘備笉鐒禗ate灝辨病娉曞疄鐜癈omparable鎺ュ彛浜嗐?/FONT>
JDK1.5涓璆enerics鐨勫嚭鐜拌В鍐充簡榪欎釜闂錛屽鏋滅湅1.5涓璂ate綾葷殑婧愪唬鐮佺殑璇濓紝灝變細鍙戠幇瀹冨彧鏈変竴涓狢ompareTo()鏂規硶浜嗭紝閭e畠鎬庝箞鏉ュ疄鐜癈omparable鎺ュ彛鍛紝榪欏氨鏄疓enerics鐨勫姛鍔充簡銆傚湪Date澹版槑鏃訛紝瀹炵幇Comparable鎺ュ彛鏄繖涔堝啓鐨勶細...Comparable
榪欏氨鏄疓enerics鐨勫ソ澶勪簡銆?/FONT>
浣嗘槸榪樻湁涓鐐瑰煎緱鑰冭檻錛屽鏋滄垜浠幓鎺夐敊璇殑閭d竴琛屼唬鐮侊紝鍦?.5涓紪璇戠劧鍚庤繍琛岋紝浼氬彂鐜拌繕鏈夊湴鏂逛笌1.4鐨勪笉鍚屻傜涓琛岃緭鍑鴻鍙ヤ細鎵撳嵃1錛岃屼笉鏄?錛岃繖璇存槑1.5璁や負鍏鋒湁鐩稿悓鏃墮棿鐨則imestamp鍜宒ate鏄笉鍚岀殑錛屼絾1.4璁や負瀹冧滑鐩稿悓銆傛垜鏈夌湅浜嗕竴涓?.5鍜?.4鐨勬簮浠g爜錛屽彂鐜板畠浠珻ompareTo(Date ...)鐨勫疄鐜版柟娉曟槸涓嶄竴鏍風殑錛屽彲鑳介棶棰樺氨鍑虹幇鍦ㄨ繖閲屻傛垜娌℃湁璇曠潃鍘昏瀹冪殑浠g爜錛岀瓑鏈夋椂闂達紝涓瀹氬ソ濂界爺絀朵竴涓嬨?/FONT>
鏈鍚庯紝榪樻湁涓涓棶棰橈紝濡傛灉鐢?.5緙栬瘧騫惰繍琛岋紝浼歵hrow涓涓狢lassCastException錛岃岀敤1.4鍒欎笉浼氬嚭鐜拌繖涓棶棰樸傛垜鎯寵繖鏄洜涓簍imestamp緇ф壙浜咲ate鐨凜ompareTo()鏂規硶錛屾墍浠ヤ竴涓猼imestamp灝卞彲浠ヤ笌Date姣旇緝浜嗭紝浣嗘槸搴旂敤浜咷enerics浠ュ悗榪欑鎯呭喌鏄笉鍏佽鐨勶紝鑰屼笖浠g爜涔熸病鏈夌壒孌婂鐞嗭紝鍥犳灝變細鏈塃xception浜嗐傜湅鏉enerics涔熶細甯︽潵涓浜涘叾浠栫殑闂銆?/FONT>
鎴戞兂榪欑鎯呭喌鏄彲浠ラ伩鍏嶇殑錛屽師鍒欏氨鏄彧姣旇緝鍏鋒湁鐩稿悓綾誨瀷鐨勪袱涓璞★紝鑰屼笉涓庡叾鐖剁被鎴栧瓙綾繪瘮杈冦傚鏋滃繀欏繪瘮杈冪殑璇濓紝涔熷簲璇ョ敤鐩稿簲鐨勬柟娉曡漿鍖栦負鐩稿悓鐨勭被錛屽啀榪涜姣旇緝銆?/FONT>