# 璋㈤鏈洪潰璇曡锛氫竴鍦鸿浜哄摥绗戜笉寰楃殑Java澶у巶闈㈣瘯## 鍓嶈█鍦ㄤ簰鑱旂綉澶у巶闈㈣瘯鐨勬睙婀栦腑锛屾湁杩欐牱涓�浣嶄紶濂囦汉鐗┾�斺�旇阿椋炴満銆備粬鑷俊婊℃弧锛屽嵈鎬昏兘鍦ㄥ叧閿椂鍒绘妸澶╄亰姝汇�備粖澶╋紝璁╂垜浠窡闅忚阿椋炴満鐨勮剼姝ワ紝浣撻獙涓�鍦虹湡瀹炲張鎼炵瑧鐨凧ava鎶�鏈潰璇曘�俓n---## 闈㈣瘯鐜板満**闈㈣瘯瀹�**锛氾紙涓ヨ們鑴革級浣犲ソ锛岃鍧愩�傛垜鏄粖澶╃殑鎶�鏈潰璇曞畼锛屾垜浠洿鎺ュ紑濮嬪惂銆俓n**璋㈤鏈�**锛氾紙鏁寸悊棰嗗甫锛岃嚜淇″井绗戯級濂界殑濂界殑锛岃�佸笀鎮ㄨ璁诧紝鎴戝噯澶囧ソ浜嗭紒---## 绗竴杞細Java鍩虹涓庨泦鍚堢瘒**闈㈣瘯瀹�**锛氬厛闂嚑涓熀纭�闂銆傜涓�锛孒ashMap鐨勫簳灞傛暟鎹粨鏋勬槸浠�涔堬紵**璋㈤鏈�**锛氾紙鑳告湁鎴愮锛夎繖涓畝鍗曪紒HashMap搴曞眰鏄暟缁勫姞閾捐〃锛�1.8涔嬪悗鏄暟缁勫姞閾捐〃鍔犵孩榛戞爲銆傚綋閾捐〃闀垮害瓒呰繃8鐨勬椂鍊欙紝灏变細杞崲鎴愮孩榛戞爲锛屾彁鍗囨煡璇㈡晥鐜囥�俓n**闈㈣瘯瀹�**锛氾紙寰井鐐瑰ご锛夊棷锛屽洖绛斿緱涓嶉敊銆傞偅ArrayList鍜孡inkedList鏈変粈涔堝尯鍒紵**璋㈤鏈�**锛欰rrayList鏄姩鎬佹暟缁勶紝鏌ヨ蹇紝澧炲垹鎱紱LinkedList鏄弻鍚戦摼琛紝鏌ヨ鎱紝澧炲垹蹇�傚疄闄呴」鐩腑鎴戜滑鍩烘湰閮界敤ArrayList锛孡inkedList寰堝皯鐢ㄣ�俓n**闈㈣瘯瀹�**锛氾紙闇插嚭婊℃剰琛ㄦ儏锛夊緢濂姐�傜涓夛紝HashMap鏄嚎绋嬪畨鍏ㄧ殑鍚楋紵濡傛灉涓嶆槸锛屽绾跨▼鐜涓嬪簲璇ョ敤浠�涔堬紵**璋㈤鏈�**锛氾紙绋嶅井鐘硅鲍锛塇ashMap涓嶆槸绾跨▼瀹夊叏鐨�...澶氱嚎绋嬬殑璇�...鍙互鐢℉ashtable锛焅n**闈㈣瘯瀹�**锛氾紙鐨辩湁锛塇ashtable鎬ц兘澶樊浜嗭紝瀹為檯椤圭洰涓竴鑸敤ConcurrentHashMap銆傜户缁棶锛屼綘鐭ラ亾ConcurrentHashMap鍦�1.7鍜�1.8涓疄鐜版湁浠�涔堝尯鍒悧锛焅n**璋㈤鏈�**锛氾紙寮�濮嬪啋姹楋級1.7鏄�...鍒嗘閿侊紵1.8鏄�...CAS鍔爏ynchronized锛熷叿浣撶粏鑺傛垜鏈夌偣璁颁笉娓呬簡...**闈㈣瘯瀹�**锛氾紙璁板綍绗旇锛夎鍚э紝缁х画銆傛渶鍚庝竴涓棶棰橈紝璇磋浣犲Java鍐呭瓨妯″瀷鐨勭悊瑙c�俓n**璋㈤鏈�**锛氾紙鐪肩椋樺拷锛塉ava鍐呭瓨妯″瀷...灏辨槸鍫嗐�佹爤銆佹柟娉曞尯杩欎簺鍚э紵鍫嗛噷鏀惧璞★紝鏍堥噷鏀惧眬閮ㄥ彉閲�...锛堝0闊宠秺鏉ヨ秺灏忥級**闈㈣瘯瀹�**锛氾紙鍙规皵锛夎繖閮ㄥ垎鍥炵瓟寰椾笉澶竻鏅般�傛垜浠繘鍏ヤ笅涓�杞�俓n---## 绗簩杞細妗嗘灦涓庝腑闂翠欢绡嘰n**闈㈣瘯瀹�**锛氳璇碨pring Bean鐨勭敓鍛藉懆鏈熴�俓n**璋㈤鏈�**锛氾紙鏉ョ簿绁炰簡锛夎繖涓垜鐔燂紒瀹炰緥鍖栤啋灞炴�ц祴鍊尖啋鍒濆鍖栤啋閿�姣併�備腑闂磋繕鏈夊緢澶欰ware鎺ュ彛銆丅eanPostProcessor浠�涔堢殑銆俓n**闈㈣瘯瀹�**锛氶偅Spring Boot鑷姩瑁呴厤鍘熺悊鏄粈涔堬紵**璋㈤鏈�**锛欯SpringBootApplication娉ㄨВ锛岄噷闈㈡湁@EnableAutoConfiguration锛岄�氳繃SPI鏈哄埗鍔犺浇META-INF/spring.factories鏂囦欢閲岀殑閰嶇疆绫汇�俓n**闈㈣瘯瀹�**锛氾紙鐐瑰ご锛変笉閿欍�侻yBatis涓�#{}鍜�${}鏈変粈涔堝尯鍒紵**璋㈤鏈�**锛�#{}鏄缂栬瘧锛屽彲浠ラ槻姝QL娉ㄥ叆锛�${}鏄洿鎺ユ嫾鎺ワ紝鏈塖QL娉ㄥ叆椋庨櫓銆備竴鑸兘鐢�#{}銆俓n**闈㈣瘯瀹�**锛氬緢濂姐�傞偅浣犱滑椤圭洰涓敤娑堟伅闃熷垪鍚楋紵鐢ㄧ殑浠�涔堬紵**璋㈤鏈�**锛氱敤鐨勶紝RabbitMQ锛乗n**闈㈣瘯瀹�**锛氶偅璇磋濡備綍淇濊瘉娑堟伅涓嶄涪澶憋紵**璋㈤鏈�**锛氾紙寮�濮嬭儭鎵級杩欎釜...鐢熶骇鑰呯‘璁わ紵娑堣垂鑰呮墜鍔╝ck锛熻繕鏈夋秷鎭寔涔呭寲锛熷ぇ姒傚氨杩欎簺鍚�...**闈㈣瘯瀹�**锛氾紙杩介棶锛夐偅娑堟伅閲嶅娑堣垂鎬庝箞澶勭悊锛焅n**璋㈤鏈�**锛氾紙鎿︽睏锛夊箓绛夋�э紒瀵癸紝鍋氬箓绛夋�у鐞嗭紒鍏蜂綋鎬庝箞瀹炵幇...鐪嬩笟鍔″満鏅惂...**闈㈣瘯瀹�**锛氾紙鎽囧ご锛夊洖绛斿緱涓嶅鍏蜂綋銆傜户缁紝浣犱滑鐢ㄥ垎甯冨紡浠诲姟璋冨害鍚楋紵**璋㈤鏈�**锛氱敤鐢ㄧ敤锛亁xl-job锛乗n**闈㈣瘯瀹�**锛氶偅璇磋xxl-job鐨勬墽琛屽櫒娉ㄥ唽娴佺▼锛焅n**璋㈤鏈�**锛氾紙褰诲簳鎳典簡锛夋敞鍐屾祦绋�...灏辨槸鍚姩鐨勬椂鍊欐敞鍐屽埌璋冨害涓績鍚э紵鍏蜂綋鎬庝箞娉ㄥ唽鐨�...鎴戠湡涓嶇煡閬撲簡...**闈㈣瘯瀹�**锛氾紙鏃犲锛夎锛屾渶鍚庝竴杞�俓n---## 绗笁杞細绯荤粺璁捐涓庢灦鏋勭瘒**闈㈣瘯瀹�**锛氬亣璁句綘浠郴缁熻鏀寔鐧句竾绾х敤鎴峰悓鏃跺湪绾匡紝浣犲浣曡璁★紵**璋㈤鏈�**锛氾紙娣卞惛涓�鍙f皵锛夐鍏堬紝璐熻浇鍧囪 锛丯ginx鍋氬弽鍚戜唬鐞嗐�傜劧鍚庯紝鏈嶅姟鎷嗗垎锛屽井鏈嶅姟鏋舵瀯銆傛暟鎹簱瑕佸垎搴撳垎琛紝缂撳瓨鐢≧edis...**闈㈣瘯瀹�**锛氶偅Redis鐨勬寔涔呭寲鏂瑰紡鏈夊摢浜涳紵**璋㈤鏈�**锛歊DB鍜孉OF锛丷DB鏄揩鐓э紝AOF鏄棩蹇椼�俓n**闈㈣瘯瀹�**锛氶偅缂撳瓨绌块�忋�佺紦瀛樺嚮绌裤�佺紦瀛橀洩宕╂�庝箞瑙e喅锛焅n**璋㈤鏈�**锛氾紙璇�熷姞蹇級绌块�忕敤甯冮殕杩囨护鍣紝鍑荤┛鐢ㄤ簰鏂ラ攣锛岄洩宕╃敤闅忔満杩囨湡鏃堕棿锛乗n**闈㈣瘯瀹�**锛氾紙鎸戠湁锛夌瓟寰楄繕琛屻�傞偅鏁版嵁搴撴柟闈紝浣犱滑鎬庝箞浼樺寲鎱㈡煡璇紵**璋㈤鏈�**锛氬姞绱㈠紩锛佹墽琛岃鍒掑垎鏋愶紒杩樻湁...璇诲啓鍒嗙锛熶富浠庡鍒讹紵**闈㈣瘯瀹�**锛氱储寮曞け鏁堢殑鍦烘櫙鏈夊摢浜涳紵**璋㈤鏈�**锛氾紙寮�濮嬩贡璇达級妯$硦鏌ヨ%鍦ㄥ墠浼氬け鏁�...杩樻湁瀵瑰瓧娈佃绠椾細澶辨晥...or杩炴帴浼氬け鏁�...鍏蜂綋杩樻湁鍝簺鎴戝繕浜�...**闈㈣瘯瀹�**锛氭渶鍚庨棶涓璁℃ā寮忥紝鍗曚緥妯″紡鏈夊嚑绉嶅啓娉曪紵**璋㈤鏈�**锛氶タ姹夊紡銆佹噿姹夊紡銆佸弻閲嶆鏌ラ攣銆侀潤鎬佸唴閮ㄧ被銆佹灇涓惧紡锛佷簲绉嶏紒**闈㈣瘯瀹�**锛氬弻閲嶆鏌ラ攣涓轰粈涔堣鐢╲olatile锛焅n**璋㈤鏈�**锛氾紙褰诲簳宕╂簝锛夐槻姝�...鎸囦护閲嶆帓搴忥紵淇濊瘉鍙鎬э紵鑰佸笀锛屾垜鑳藉洖鍘荤瓑閫氱煡鍚�...**闈㈣瘯瀹�**锛氾紙鍚堜笂绠�鍘嗭級濂戒簡锛屼粖澶╁氨鍒拌繖閲屻�備綘鍥炲幓绛夐�氱煡鍚э紝3涓伐浣滄棩鍐匟R浼氳仈绯讳綘銆俓n**璋㈤鏈�**锛氾紙璧疯韩锛屽急寮卞湴闂級閭d釜...鑰佸笀锛屾垜鍒氭墠琛ㄧ幇鎬庝箞鏍凤紵**闈㈣瘯瀹�**锛氾紙寰瑧锛夎繕琛屽惂锛屽熀纭�杩樺彲浠ワ紝娣卞害鏈夊緟鍔犲己銆俓n**璋㈤鏈�**锛氾紙鍐呭績OS锛夎繖涓嶅氨鏄濠夊湴璇存垜娌¢�氳繃鍚�...---## 闈㈣瘯闂璇︾粏绛旀瑙f瀽### 绗竴杞瓟妗圽n#### 1. HashMap搴曞眰鏁版嵁缁撴瀯HashMap鍦↗DK 1.8涓殑搴曞眰缁撴瀯鏄�**鏁扮粍+閾捐〃+绾㈤粦鏍�**锛歕n- 鍒濆瀹归噺涓�16锛岃礋杞藉洜瀛愪负0.75- 褰撻摼琛ㄩ暱搴︹墺8涓旀暟缁勯暱搴︹墺64鏃讹紝閾捐〃杞负绾㈤粦鏍慭n- 褰撶孩榛戞爲鑺傜偣鈮�6鏃讹紝绾㈤粦鏍戣浆涓洪摼琛╘n- 鎵╁鏈哄埗锛氬閲忕炕鍊嶏紝閲嶆柊hash鍒嗛厤```java// HashMap鑺傜偣缁撴瀯treeNode extends LinkedHashMap.Entrystatic class Node implements Map.Entry { final int hash; final K key; V value; Node next;}```#### 2. ArrayList vs LinkedList| 鐗规�� | ArrayList | LinkedList ||------|-----------|------------|| 搴曞眰缁撴瀯 | 鍔ㄦ�佹暟缁� | 鍙屽悜閾捐〃 || 闅忔満璁块棶 | O(1) | O(n) || 鎻掑叆鍒犻櫎 | O(n) | O(1) || 鍐呭瓨鍗犵敤 | 杈冨皯 | 杈冨锛堥渶瑕佸瓨鍌ㄥ墠鍚庢寚閽堬級 || 閫傜敤鍦烘櫙 | 鏌ヨ澶氾紝澧炲垹灏� | 澧炲垹澶氾紝鏌ヨ灏� |#### 3. ConcurrentHashMap 1.7 vs 1.8**JDK 1.7**锛歕n- 鍒嗘閿侊紙Segment锛夋満鍒禱n- 榛樿16涓猄egment锛屾瘡涓猄egment鐙珛鍔犻攣- 鏁版嵁缁撴瀯锛氭暟缁�+閾捐〃**JDK 1.8**锛歕n- CAS + synchronized- 閿佺矑搴︽洿缁嗭紝閿佷綇閾捐〃/绾㈤粦鏍戠殑棣栬妭鐐筡n- 鏁版嵁缁撴瀯锛氭暟缁�+閾捐〃+绾㈤粦鏍慭n- 骞跺彂搴︽洿楂橈紝鎬ц兘鏇村ソ#### 4. Java鍐呭瓨妯″瀷锛圝MM锛塡nJava鍐呭瓨妯″瀷涓昏鍖呭惈锛歕n- **鍫嗭紙Heap锛�**锛氬瓨鏀惧璞″疄渚嬶紝鍨冨溇鍥炴敹鐨勪富瑕佸尯鍩焅n- **鏍堬紙Stack锛�**锛氬瓨鏀惧眬閮ㄥ彉閲忋�佹柟娉曡皟鐢ㄩ摼- **鏂规硶鍖猴紙Method Area锛�**锛氬瓨鏀剧被淇℃伅銆佸父閲忋�侀潤鎬佸彉閲廫n- **绋嬪簭璁℃暟鍣�**锛氳褰曞綋鍓嶇嚎绋嬫墽琛岀殑瀛楄妭鐮佽鍙穃n- **鏈湴鏂规硶鏍�**锛歂ative鏂规硶浣跨敤**JMM鏍稿績姒傚康**锛歕n- 鍘熷瓙鎬с�佸彲瑙佹�с�佹湁搴忔�n- happens-before鍘熷垯- volatile銆乻ynchronized鍐呭瓨璇箟---### 绗簩杞瓟妗圽n#### 1. Spring Bean鐢熷懡鍛ㄦ湡```1. 瀹炰緥鍖栵紙Instantiation锛塡n2. 灞炴�ц祴鍊硷紙Populate锛塡n3. Aware鎺ュ彛鍥炶皟锛圔eanNameAware銆丅eanFactoryAware绛夛級4. BeanPostProcessor鍓嶇疆澶勭悊锛坧ostProcessBeforeInitialization锛塡n5. 鍒濆鍖栨柟娉曪紙InitializingBean.afterPropertiesSet / @PostConstruct锛塡n6. BeanPostProcessor鍚庣疆澶勭悊锛坧ostProcessAfterInitialization锛塡n7. 浣跨敤闃舵8. 閿�姣佹柟娉曪紙DisposableBean.destroy / @PreDestroy锛塡n```#### 2. Spring Boot鑷姩瑁呴厤鍘熺悊```java@SpringBootApplication= @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan@EnableAutoConfiguration= @AutoConfigurationPackage + @Import(AutoConfigurationImportSelector.class)AutoConfigurationImportSelector:- 鍔犺浇 META-INF/spring.factories锛�2.7+涓� META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports锛塡n- 绛涢�夌鍚堟潯浠剁殑閰嶇疆绫伙紙@Conditional娉ㄨВ锛塡n- 娉ㄥ唽鍒癝pring瀹瑰櫒```#### 3. MyBatis #{} vs ${}| 鐗规�� | #{} | ${} ||------|-----|-----|| 澶勭悊鏂瑰紡 | 棰勭紪璇戯紙?鍗犱綅绗︼級 | 瀛楃涓叉浛鎹� || SQL娉ㄥ叆 | 闃叉 | 鏈夐闄� || 浣跨敤鍦烘櫙 | 鍙傛暟鍊� | 琛ㄥ悕銆佸垪鍚嶇瓑 |#### 4. RabbitMQ娑堟伅鍙潬鎬т繚璇乗n**鐢熶骇鑰呬笉涓㈠け**锛歕n- 寮�鍚疌onfirm纭妯″紡- 澶辫触閲嶈瘯鏈哄埗- 鏈湴娑堟伅琛�+瀹氭椂浠诲姟**MQ涓嶄涪澶�**锛歕n- 娑堟伅鎸佷箙鍖栵紙exchange銆乹ueue銆乵essage閮芥寔涔呭寲锛塡n- 闀滃儚闃熷垪**娑堣垂鑰呬笉涓㈠け**锛歕n- 鎵嬪姩ACK- 涓氬姟澶勭悊鎴愬姛鍚庡啀纭- 姝讳俊闃熷垪澶勭悊澶辫触娑堟伅**骞傜瓑鎬у鐞�**锛歕n- 鍞竴娑堟伅ID + 鏁版嵁搴撳幓閲嶈〃- Redis鍘熷瓙鎿嶄綔锛坰etnx锛塡n- 涓氬姟鐘舵�佹満鎺у埗#### 5. xxl-job鎵ц鍣ㄦ敞鍐屾祦绋媆n```1. 鎵ц鍣ㄥ惎鍔紝璇诲彇閰嶇疆锛堟墽琛屽櫒鍚嶇О銆佸湴鍧�绛夛級2. 璋冪敤璋冨害涓績 API锛�/registry锛夋敞鍐孿n3. 璋冨害涓績灏嗘墽琛屽櫒淇℃伅瀛樺叆鏁版嵁搴揬n4. 鎵ц鍣ㄥ畾鏈熷彂閫佸績璺筹紙/beat锛塡n5. 璋冨害涓績鏍规嵁娉ㄥ唽淇℃伅璺敱浠诲姟6. 鎵ц鍣ㄤ笅绾挎椂鑷姩/鎵嬪姩娉ㄩ攢```---### 绗笁杞瓟妗圽n#### 1. 鐧句竾绾х敤鎴峰湪绾挎灦鏋勮璁n```鐢ㄦ埛 鈫� CDN 鈫� Nginx璐熻浇鍧囪 鈫� 缃戝叧灞� 鈫� 寰湇鍔¢泦缇n 鈫揬n Redis闆嗙兢锛堢紦瀛橈級 鈫揬n MySQL闆嗙兢锛堝垎搴撳垎琛級 鈫揬n 娑堟伅闃熷垪锛堝紓姝ヨВ鑰︼級```**鍏抽敭璁捐**锛歕n- 鏈嶅姟鏃犵姸鎬佸寲锛屾按骞虫墿灞昞n- 璇诲啓鍒嗙 + 鍒嗗簱鍒嗚〃锛堟寜鐢ㄦ埛ID鍝堝笇锛塡n- 澶氱骇缂撳瓨锛堟湰鍦扮紦瀛�+鍒嗗竷寮忕紦瀛橈級- 寮傛鍖栵紙娑堟伅闃熷垪鍓婂嘲锛塡n- 闄愭祦鐔旀柇锛圫entinel/Hystrix锛塡n#### 2. Redis鎸佷箙鍖栨柟寮廫n| 鏂瑰紡 | 鍘熺悊 | 浼樼偣 | 缂虹偣 ||------|------|------|------|| RDB | 瀹氭椂蹇収 | 鏂囦欢绱у噾锛屾仮澶嶅揩 | 鍙兘涓㈠け鏁版嵁 || AOF | 璁板綍鍐欏懡浠� | 鏁版嵁鏇村畨鍏� | 鏂囦欢澶э紝鎭㈠鎱� || 娣峰悎鎸佷箙鍖� | RDB+AOF | 鍏奸【涓よ�� | Redis 4.0+ |#### 3. 缂撳瓨涓夊ぇ闂瑙e喅鏂规**缂撳瓨绌块��**锛堟煡璇笉瀛樺湪鐨勬暟鎹級锛歕n- 甯冮殕杩囨护鍣ㄦ嫤鎴猏n- 缂撳瓨绌哄�硷紙璁剧疆鐭繃鏈熸椂闂达級- 鎺ュ彛灞傚鍔犳牎楠孿n**缂撳瓨鍑荤┛**锛堢儹鐐筴ey杩囨湡锛夛細- 浜掓枼閿侊紙synchronized/Redis鍒嗗竷寮忛攣锛塡n- 閫昏緫杩囨湡锛堜笉璁剧疆鐗╃悊杩囨湡锛屽紓姝ユ洿鏂帮級**缂撳瓨闆穿**锛堝ぇ閲弅ey鍚屾椂杩囨湡锛夛細- 闅忔満杩囨湡鏃堕棿锛堝熀纭�鏃堕棿+闅忔満鍊硷級- 澶氱骇缂撳瓨- 闄愭祦闄嶇骇#### 4. 绱㈠紩澶辨晥鍦烘櫙- 瀵圭储寮曞垪杩涜璁$畻鎴栧嚱鏁版搷浣淺n- LIKE '%xxx'锛堝墠缂�妯$硦鏌ヨ锛塡n- OR杩炴帴锛堝叾涓竴涓瓧娈垫棤绱㈠紩锛塡n- 绫诲瀷闅愬紡杞崲锛堝瓧绗︿覆涓嶅姞寮曞彿锛塡n- 杩濆弽鏈�宸﹀墠缂�鍘熷垯锛堝鍚堢储寮曪級- != 鎴� <> 鎿嶄綔绗n- IS NULL / IS NOT NULL锛堟煇浜涙儏鍐碉級#### 5. 鍗曚緥妯″紡浜旂鍐欐硶```java// 1. 楗挎眽寮忥紙绾跨▼瀹夊叏锛岀被鍔犺浇鏃跺垵濮嬪寲锛塡npublic class Singleton { private static final Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instance; }}// 2. 鎳掓眽寮忥紙绾跨▼涓嶅畨鍏級public class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; }}// 3. 鍙岄噸妫�鏌ラ攣锛堟帹鑽愶級public class Singleton { private static volatile Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; }}// 4. 闈欐�佸唴閮ㄧ被锛堟帹鑽愶級public class Singleton { private Singleton() {} private static class Holder { private static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { return Holder.INSTANCE; }}// 5. 鏋氫妇寮忥紙鏈�瀹夊叏锛岄槻鍙嶅皠锛塡npublic enum Singleton { INSTANCE; public void doSomething() {}}```**volatile浣滅敤**锛歕n- 绂佹鎸囦护閲嶆帓搴忥紙闃叉鍏朵粬绾跨▼鑾峰彇鍒版湭鍒濆鍖栧畬鎴愮殑瀵硅薄锛塡n- 淇濊瘉鍙鎬э紙涓�涓嚎绋嬩慨鏀瑰悗锛屽叾浠栫嚎绋嬬珛鍗冲彲瑙侊級---## 鎬荤粨閫氳繃璋㈤鏈虹殑闈㈣瘯缁忓巻锛屾垜浠彲浠ョ湅鍒帮細1. **鍩虹瑕佹墡瀹�**锛氶泦鍚堛�佸绾跨▼銆丣VM绛夊熀纭�鐭ヨ瘑蹇呴』鐗㈠浐2. **鍘熺悊瑕佺悊瑙�**锛氫笉浠呬細鐢紝杩樿鐭ラ亾搴曞眰瀹炵幇鍘熺悊3. **鍦烘櫙瑕佺粨鍚�**锛氭妧鏈鑳界粨鍚堝疄闄呬笟鍔″満鏅垎鏋怽n4. **娣卞害瑕佹寲鎺�**锛氶潰璇曞畼鍠滄杩介棶锛岃鑳藉眰灞傛繁鍏n5. **鎬佸害瑕佽瘹鎭�**锛氫笉浼氱殑闂鍙互鎵胯锛屼笉瑕佽儭涔卞洖绛擻n甯屾湜杩欑瘒鏂囩珷鑳藉府鍔╂鍦ㄥ噯澶囬潰璇曠殑灏忎紮浼翠滑锛岀澶у閮借兘鎷垮埌蹇冧华鐨刼ffer锛乗n---*锛堟湰鏂囩函灞炶櫄鏋勶紝濡傛湁闆峰悓锛岄偅璇存槑浣犱篃閬囧埌杩囪阿椋炴満锛�*
浙公网安备 33010602011771号