锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
灝忕殑鍧楋細
灝忕殑鍧楅檷浣庡潡绔炰簤錛屽洜涓烘瘡涓潡涓殑琛岃緝灝?
灝忕殑鍧楀浜庡皬鐨勮鏈夌泭.
灝忕殑鍧楀浜庨殢鎰忕殑璁塊棶杈冨ソ.濡傛灉涓涓潡涓嶅お鍙兘鍦ㄨ鍏ュ唴瀛樺悗琚慨鏀癸紝閭d箞鍧楃殑澶у皬瓚婂皬浣跨敤buffer cache瓚婃湁鏁堢巼銆傚綋鍐呭瓨璧勬簮寰堢弽璐墊椂灝や負閲嶈錛屽洜涓烘暟鎹簱鐨刡uffer cache鏄闄愬埗澶у皬鐨勩?br />
鍔e娍錛?br />
灝忓潡鐨勭鐞嗘秷璐圭浉瀵瑰ぇ.
鍥犱負琛岀殑澶у皬浣犲彲鑳藉彧鍦ㄥ潡涓瓨鍌ㄥ緢灝忔暟鐩殑琛岋紝榪欏彲鑳藉鑷撮澶栫殑I/O銆?br />
灝忓潡鍙兘瀵艱嚧鏇村鐨勭儲寮曞潡琚鍙?/p>
澶х殑鍧?br />
濂藉錛?br />
鏇村皯鐨勭鐞嗘秷璐瑰拰鏇村瀛樺偍鏁版嵁鐨勭┖闂?
澶у潡瀵逛簬鏈夐『搴忕殑璇誨彇杈冨ソ. 璀璇村叏琛ㄦ壂鎻?br />
澶у潡瀵瑰緢澶х殑琛岃緝濂?br />
澶у潡鏀硅繘浜嗙儲寮曡鍙栫殑鎬ц兘.澶х殑鍧楀彲浠ュ湪涓涓潡涓綰蟲洿澶氱殑绱㈠紩鏉$洰,闄嶄綆浜嗗ぇ鐨勭儲寮曠駭鐨勬暟閲?瓚婂皯鐨刬ndex level鎰忓懗鐫鍦ㄩ亶鍘嗙儲寮曞垎鏀殑鏃跺欒秺灝戠殑I/O銆?br />
鍔e娍錛?br />
澶у潡涓嶉傚悎鍦∣LTP涓敤浣滅儲寮曞潡,鍥犱負瀹冧滑澧炲姞浜嗗湪绱㈠紩鍙跺潡涓婄殑鍧楃珵浜夈?br />
濡傛灉浣犳槸闅忔剰鐨勮闂皬鐨勮騫舵湁澶х殑鍧楋紝buffer cache灝辮嫻垂浜嗐備緥濡傦紝8 KB鐨刡lock size 鍜?0 byte row size,浣犳氮璐逛簡7,950
濡傦細鑷姩瑁呯錛屽畠鍙互鐩存帴鎶婂熀鏈被鍨嬭祴鍊肩粰灝佽綾誨瀷
Integer num = 10 ;
Double d = 2d ;
鑷姩鎷嗙錛屽畠鍙互鎶婂皝瑁呯被鍨嬭祴鍊肩粰鍩烘湰綾誨瀷
int num = new Integer(10);
double d = new Double(2d);
鑷姩瑁呯涓庢媶綆辯殑鍔熻兘浜嬪疄涓婃槸緙栬瘧鍣ㄦ潵甯偍鐨勫繖錛岀紪璇戝櫒鍦ㄧ紪璇戞椂鏈熶緷鎮ㄦ墍緙栧啓鐨勮娉曪紝鍐沖畾鏄惁榪涜瑁呯鎴栨媶綆卞姩浣溿傚湪鑷姩瑁呯鏃跺浜庡間粠-128鍒?27涔嬮棿鐨勫鹼紝瀹冧滑琚綆變負Integer瀵硅薄鍚庯紝浼氬瓨鍦ㄥ唴瀛樹腑琚噸鐢紝鎵浠ヨ寖渚?.6涓嬌鐢?=榪涜姣旇緝鏃訛紝i1 涓?i2瀹為檯涓婂弬鑰冭嚦鍚屼竴涓璞°傚鏋滆秴榪囦簡浠?128鍒?27涔嬮棿鐨勫鹼紝琚綆卞悗鐨処nteger瀵硅薄騫朵笉浼氳閲嶇敤錛屽嵆鐩稿綋浜庢瘡嬈¤綆辨椂閮芥柊寤轟竴涓狪nteger瀵硅薄錛屾墍浠ヨ寖渚?.7浣跨敤==榪涜姣旇緝鏃訛紝i1涓巌2鍙傝冪殑鏄笉鍚岀殑瀵硅薄銆傛墍浠ヤ笉瑕佽繃鍒嗕緷璧栬嚜鍔ㄨ綆變笌鎷嗙錛屾偍榪樻槸蹇呴』鐭ラ亾鍩烘湰鏁版嵁綾誨瀷涓庡璞$殑宸紓銆?/span>
public void testBoxingUnboxing() {
int i = 10;
Integer inta = i;
inta++;
inta += 1;
int j = inta;
assertTrue(j == inta);緇撴灉鏄細true//junit閲岄潰鐨勬柟娉?/span>
assertTrue(j == new Integer(j)); 緇撴灉鏄細true
assertTrue(10000 == new Integer(10000)); 緇撴灉鏄細true
}
Integer i = 100.鐩稿綋浜庣紪璇戝櫒鑷姩涓烘偍浣滀互涓嬬殑璇硶緙栬瘧錛?/span>
Integer i = new Integer(100).鎵浠ヨ嚜鍔ㄨ綆變笌鎷嗙鐨勫姛鑳芥槸鎵璋撶殑“緙栬瘧鍣ㄨ湝緋?#8221;(Compiler Sugar)錛岃櫧鐒朵嬌鐢ㄨ繖涓姛鑳藉緢鏂逛究錛屼絾鍦ㄧ▼搴忚繍琛岄樁孌墊偍寰椾簡瑙ava鐨勮涔夈備緥濡備笅闈㈢殑紼嬪簭鏄彲浠ラ氳繃緙栬瘧鐨勶細
Integer i = null.int j = i.榪欐牱鐨勮娉曞湪緙栬瘧鏃舵湡鏄悎娉曠殑錛屼絾鏄湪榪愯鏃舵湡浼氭湁閿欒錛屽洜涓鴻繖縐嶅啓娉曠浉褰撲簬錛?/span>
Integer i = null.int j = i.intValue().null琛ㄧずi娌℃湁鍙傝冭嚦浠諱綍鐨勫璞″疄浣擄紝瀹冨彲浠ュ悎娉曞湴鎸囧畾緇欏璞″弬鑰冨悕縐般傜敱浜庡疄闄呬笂i騫舵病鏈夊弬鑰冭嚦浠諱綍鐨勫璞★紝鎵浠ヤ篃灝變笉鍙兘鎿嶄綔intValue()鏂規硶錛岃繖鏍蜂笂闈㈢殑鍐欐硶鍦ㄨ繍琛屾椂浼氬嚭鐜癗ullPointerException閿欒銆?/span>
鑷姩瑁呯銆佹媶綆辯殑鍔熻兘鎻愪緵浜嗘柟渚挎э紝浣嗛殣钘忎簡涓浜涚粏鑺傦紝鎵浠ュ繀欏誨皬蹇冦傚啀鏉ョ湅鑼冧緥4.6錛屾偍璁や負緇撴灉鏄粈涔堝憿錛?/span>
Ü. 鑼冧緥4.6 AutoBoxDemo2.java
public class AutoBoxDemo2 {
public static void main(String[] args) {
Integer i1 = 100;
Integer i2 = 100;
if (i1 == i2)
System.out.println("i1 == i2");
else
System.out.println("i1 != i2").
}
}
浠庤嚜鍔ㄨ綆變笌鎷嗙鐨勬満鍒舵潵鐪嬶紝鍙兘浼氳寰楃粨鏋滄槸鏄劇ずi1 == i2錛屾偍鏄鐨勩傞偅涔堣寖渚?.7鐨勮繖涓▼搴忥紝鎮ㄨ寰楃粨鏋滄槸浠涔堬紵
Ü. 鑼冧緥4.7 AutoBoxDemo3.java
public class AutoBoxDemo3 {
public static void main(String[] args) {
Integer i1 = 200;
Integer i2 = 200;
if (i1 == i2)
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");
}
}
緇撴灉鏄樉紺?/span>i1 != i2錛?/span>榪欐湁浜涗護浜烘儕璁訛紝涓や釜鑼冧緥璇硶瀹屽叏涓鏍鳳紝鍙笉榪囨敼涓暟鍊艱屽凡錛岀粨鏋滃嵈鐩稿弽銆?/span>
鍏跺疄榪欎笌==榪愮畻絎︾殑姣旇緝鏈夊叧錛屽湪絎?绔犱腑浠嬬粛榪?=鏄敤鏉ユ瘮杈冧袱涓熀鏈暟鎹被鍨嬬殑鍙橀噺鍊兼槸鍚︾浉絳夛紝浜嬪疄涓?=涔熺敤浜庡垽鏂袱涓璞″紩鐢ㄥ悕縐版槸鍚﹀弬鑰冭嚦鍚屼竴涓璞°?/span>
鍦ㄨ嚜鍔ㄨ綆辨椂瀵逛簬鍊間粠–128鍒?/span>127涔嬮棿鐨勫鹼紝瀹冧滑琚綆變負Integer瀵硅薄鍚庯紝浼氬瓨鍦ㄥ唴瀛樹腑琚噸鐢紝鎵浠ヨ寖渚?/span>4.6涓嬌鐢?/span>==榪涜姣旇緝鏃訛紝i1 涓?/span> i2瀹為檯涓婂弬鑰冭嚦鍚屼竴涓璞°傚鏋滆秴榪囦簡浠?/span>–128鍒?/span>127涔嬮棿鐨勫鹼紝琚綆卞悗鐨?/span>Integer瀵硅薄騫朵笉浼氳閲嶇敤錛屽嵆鐩稿綋浜庢瘡嬈¤綆辨椂閮芥柊寤轟竴涓?/span>Integer瀵硅薄錛屾墍浠ヨ寖渚?/span>4.7浣跨敤==榪涜姣旇緝鏃訛紝i1涓?/span>i2鍙傝冪殑鏄笉鍚岀殑瀵硅薄銆?/span>
鎵浠ヤ笉瑕佽繃鍒嗕緷璧栬嚜鍔ㄨ綆變笌鎷嗙錛屾偍榪樻槸蹇呴』鐭ラ亾鍩烘湰鏁版嵁綾誨瀷涓庡璞$殑宸紓銆傝寖渚?.7鏈濂借繕鏄緷姝h鐨勬柟寮忔潵鍐欙紝鑰屼笉鏄緷璧栫紪璇戝櫒铚滅硸(Compiler Sugar)銆備緥濡傝寖渚?.7蹇呴』鏀瑰啓涓鴻寖渚?.8鎵嶆槸姝g‘鐨勩?/span>
Ü. 鑼冧緥4.8 AutoBoxDemo4.java
public class AutoBoxDemo4 {
public static void main(String[] args) {
Integer i1 = 200;
Integer i2 = 200;
if (i1.equals(i2))
System.out.println("i1 == i2");
else
System.out.println("i1 != i2");
}
}
緇撴灉榪欐鏄樉紺?span style="color: red">i1 == i2銆?/strong>浣跨敤榪欐牱鐨勫啓娉曪紝鐩鎬俊涔熶細姣旇緝鏀懼績涓浜涳紝瀵逛簬榪欎簺鏂逛究浣嗛殣钘忕粏鑺傜殑鍔熻兘鍒板簳瑕佷笉瑕佺敤鍛紵鍩烘湰涓婂彧鏈変竴涓師鍒欙細濡傛灉鎮ㄤ笉紜畾灝變笉瑕佺敤銆?/span>
.fnm鐨勬枃浠舵牸寮忥細 錛團ield鐨勪俊鎭級
int: Field鐨勪釜鏁幫紝鏈灝戜負1錛屾渶灝戞湁涓涓狥ield("",false)錛屽湪鍒濆鍖栫殑鏃跺欏啓鍏?鏆傛椂涓嶇煡閬撳師鍥?; 鍚嶇О涓虹┖瀛楃涓詫紝鏈儲寮曪紝 鏈?nbsp; 鍚?nbsp; 閲忓寲銆俽eadVInt()璇誨彇
String: byte String鏄?nbsp;Field鐨勫悕縐?nbsp; byte鎸囩ず璇ield 鏄惁琚儲寮曪紝鏄惁鍚戦噺鍖?錛堝兼湁錛?1錛?0錛?1錛夌涓涓?浠h〃琚儲寮曪紝絎簩涓唬琛ㄨ鍚戦噺鍖?br />
String: byte Field 鍚屼笂
.fdx鐨勬枃浠舵牸寮忥細涓昏鏄彁渚涘.fdt涓瓨鍌ㄧ殑document鐨勯殢鍗寵鍙?br />
long : 絎竴涓猟ocument鍦?fdt鏂囦歡涓殑浣嶇疆
long: 絎簩涓猟ocument鍦?fdt鏂囦歡涓殑浣嶇疆
.fdt鐨勬枃浠舵牸寮忥細 .fdt鏂囦歡瀛樺偍浜嗕竴緋誨垪document鐨勪俊鎭?br /> VInt: 璇ocument涓殑isStored灞炴т負true鐨勫煙鐨勪釜鏁?br /> (VInt:) 濡傛灉璇ield鐨刬sStored灞炴т負true鍒欏緱鍒拌field鐨刦ieldNumber錛屾殏鏃朵笉鐭ラ亾榪欎釜fieldNumber鏄庝箞浜х敓鐨勶紝鏈変粈涔堢敤錛屽垵姝ヤ及璁℃槸鎸夌収field鍒涘緩鐨勯『搴忎駭鐢熺殑錛屾瘡嬈″啀涓婁竴涓猣ield鐨刦ieldNumber鍩虹涓婂姞1銆?br /> byte: 濡傛灉璇ield鐨刬sTokenized灞炴т負true鍐欏叆1鍚﹀垯鍐欏叆false銆?br /> String: 璇ield鐨剆tringValue()鍊箋?br /> 涓涓猟ocument緇撴潫錛屼笅闈㈢殑鏁版嵁灝嗕細寮濮嬩竴涓柊鐨刣ocument錛屾瘡涓柊鐨刣ocument鐨勫紑濮嬬偣鐨勬枃浠朵綅緗兘浼氬湪.fdx涓湁璁拌澆錛屼究浜庨殢鍗寵闂?/span>