鑰侀潰瀛旔煈达細Java涓殑鍏抽敭瀛楁湁鍝簺灏忓皬椋庰煃侊細鏁版嵁绫诲瀷浣跨敤鐨勫叧閿瓧鏈塨oolean,byte,char,double,float,int銆乴ong銆乶ew銆乻hort銆乿oid銆乮nstanceof銆傝鍙ヤ腑浣跨敤鐨勫叧閿瓧鏈塨reak銆乧ase銆乧atch銆乧ontinue銆乨efault銆乨o銆乪lse銆乫or銆乮f銆乺eturn銆乻witch銆乼ry銆亀hile銆乫inally銆乼hrow銆乼his銆乻uper銆傜敤浜庝慨楗扮殑鍏抽敭瀛楁湁abstract銆乫inal銆乶ative銆乸rivate銆乸rotected銆乸ublic銆乻tatic銆乻ynchronized銆乼ransient銆乿olatile銆傚浜庢柟娉曘€佺被銆佹帴鍙c€佸寘鍜屽紓甯告柟娉曘€佺被銆佹帴鍙c€佸寘鍜屽紓甯哥殑鍏抽敭瀛楁槸class銆乪xtends銆乮mplements銆乮nterface銆乸ackage銆乮mport銆乼hrows銆傝繕鏈夊叾浠栧叧閿瓧锛屽future銆乬eneric銆乷perator銆乷uter銆乺est銆乿ar绛夛紝閮芥槸Java淇濈暀鐨勬棤鎰忎箟鐨勫叧閿瓧銆傚彟澶栵紝Java鏈?涓繚鐣欏瓧锛歡oto銆乧onst銆乶ull銆傚畠浠笉鏄叧閿瓧锛岃€屾槸鏂囧瓧銆傚寘鍚獼ava瀹氫箟鐨勫€笺€備笌鍏抽敭瀛椾竴鏍凤紝瀹冧滑涓嶈兘鐢ㄤ綔鏍囪瘑绗︺€傝€侀潰瀛旔煈达細绠€鍗曚粙缁嶄竴涓媐inal鍏抽敭瀛楀皬灏忛馃崄锛歠inal鍏抽敭瀛楀彲浠ョ敤鏉ヤ慨楗板紩鐢ㄣ€佹柟娉曞拰绫汇€備慨楗板紩鐢ㄥ鏋滃紩鐢ㄦ槸鍩烘湰鏁版嵁绫诲瀷锛屽垯寮曠敤鏄父閲忥紝涓嶈兘淇敼鍊硷紱濡傛灉寮曠敤鏄紩鐢ㄦ暟鎹被鍨嬶紝濡傚璞℃垨鏁扮粍锛屽垯瀵硅薄鎴栨暟缁勬湰韬彲浠ヤ慨鏀癸紝浣嗘寚鍚戝璞℃垨鏁扮粍References鐨勫湴鍧€涓嶈兘淇敼銆傚鏋滃紩鐢ㄦ槸绫荤殑鎴愬憳鍙橀噺锛屽繀椤诲氨鍦拌祴鍊硷紝鍚﹀垯缂栬瘧浼氭姤閿欍€備慨楗扮殑鏂规硶褰撲娇鐢╢inal淇グ鐨勬柟娉曟椂锛岃繖涓柟娉曚笉鑳借瀛愮被瑕嗙洊銆備絾鏄紝璇ユ柟娉曚粛鐒跺彲浠ヨ缁ф壙銆傚綋鐢╢inal淇グ涓€涓被鏃讹紝璇ョ被灏辨垚涓篺inal绫伙紝涓嶈兘琚户鎵裤€傝€侀潰瀛旔煈达細绠€鍗曚粙缁嶄竴涓媡his鍜宻uper鍏抽敭瀛楀皬灏忛馃崄锛歵his锛氫唬琛ㄥ綋鍓嶅璞$殑寮曠敤锛岃皝鍙垜璋佸氨浠h〃璋佸彨鎴戙€俿uper锛氳〃绀哄綋鍓嶅璞″鐖剁被鐨勫紩鐢ㄣ€傝皟鐢ㄦ垚鍛樺彉閲忔槸涓嶅悓鐨勶紱this:鎴愬憳鍙橀噺璋冪敤鏈被鐨勬垚鍛樺彉閲忎篃鍙互璋冪敤鐖剁被鐨勬垚鍛樺彉閲忋€俿uper:鎴愬憳鍙橀噺璋冪敤鐖剁被鐨勬垚鍛樺彉閲忋€傝皟鐢ㄦ瀯閫犲嚱鏁版槸涓嶅悓鐨勩€倀his锛氳皟鐢ㄨ绫荤殑鏋勯€犲嚱鏁般€俿uper锛氳皟鐢ㄧ埗绫荤殑鏋勯€犲嚱鏁般€傝皟鐢ㄦ垚鍛樻柟娉曘€倀his:鎴愬憳鏂规硶璋冪敤鏈被鐨勬垚鍛樻柟娉曪紝涔熷彲浠ヨ皟鐢ㄧ埗绫荤殑鏂规硶銆俿uper:鎴愬憳鏂规硶璋冪敤鐖剁被鐨勬垚鍛樻柟娉曘€傝€佽劯馃懘锛氱畝鍗曚粙缁嶄竴涓媠tatic鍏抽敭瀛楀皬灏忛馃崄锛歴tatic鏄敤鏉ヤ慨楗版垚鍛樼殑淇グ绗︺€傦紙鎴愬憳鍙橀噺銆佹垚鍛樺嚱鏁帮級闈欐€佷慨楗扮殑鎴愬憳鍙橀噺绉颁负闈欐€佸彉閲忔垨绫诲彉閲忋€傞潤鎬佷慨鏀规垚鍛樼敱鎵€鏈夊璞″叡浜€傞潤鎬佸厛浜庡璞″瓨鍦紝鍥犱负闈欐€佹垚鍛樺凡缁忓瓨鍦ㄤ簬绫荤殑鍔犺浇涓€傞潤鎬佷慨楗版垚鍛樺浜嗕竴绉嶈皟鐢ㄦ柟娉曪紝鍙互鐩存帴閫氳繃绫诲悕璋冪敤锛?绫诲悕.闈欐€佹垚鍛?銆俿tatic淇グ鐨勬暟鎹槸鍏变韩鏁版嵁锛屽璞′腑瀛樺偍鐨勬暟鎹槸鐙湁鏁版嵁銆傝€侀潰瀛旔煈达細绠€鍗曚粙缁嶄竴涓媣olatile鍏抽敭瀛楀皬灏忛馃崄锛歷olatile鏄痡ava铏氭嫙鏈烘彁渚涚殑杞婚噺绾у悓姝ユ満鍒讹紝鐢ㄦ潵琛ㄧず鍙互琚绾跨▼寮傛淇敼鐨勬垚鍛樺彉閲忋€傚叾鐗圭偣鏄細1.淇濊瘉鍙2.绂佹鎸囦护閲嶆帓3.涓嶄繚璇佸師瀛愭€?.volatile鍙鎬х殑瀹炵幇鍘熺悊锛氬彉閲忚volatile鍏抽敭瀛椾慨楗板悗锛屽簳灞傛眹缂栦腑浼氬嚭鐜颁竴涓猯ock鍓嶇紑鎸囦护鎿嶄綔璇存槑銆備細瀵艰嚧浠ヤ笅涓ょ鎯呭喌鍙戠敓锛氬綋volatile鍙橀噺琚慨鏀规椂锛屼慨鏀瑰悗鐨勫€间細琚己鍒跺埛鏂板埌涓诲瓨涓€備慨鏀箆olatile鍙橀噺鍚庯紝鍏朵粬绾跨▼宸ヤ綔鍐呭瓨涓搴旂殑鍙橀噺鍊煎皢澶辨晥銆傚洜姝わ紝鍐嶆璇诲彇鍙橀噺鍊兼椂锛岄渶瑕侀噸鏂拌鍙栦富瀛樹腑鐨勫€笺€?銆乿olatileorder鐨勫疄鐜板師鐞嗭細鎸囦护閲嶆帓搴忥細缂栬瘧鍣ㄥ湪涓嶆敼鍙樺崟绾跨▼绋嬪簭璇箟鐨勬儏鍐典笅锛岄噸鏂板畨鎺掕鍙ョ殑鎵ц椤哄簭銆傛寚浠ら噸鎺掑簭鍦ㄥ崟绾跨▼涓嬩笉浼氬嚭闂锛屼絾鍦ㄥ绾跨▼涓嬶紝灏卞彲鑳藉嚭鐜伴棶棰樸€倂olatileorder鐨勪繚璇佹槸閫氳繃绂佹鎸囦护閲嶆柊鎺掑簭鏉ュ疄鐜扮殑銆傛寚浠ら噸鎺掑簭鍖呮嫭缂栬瘧鍣ㄩ噸鎺掑簭鍜屽鐞嗗櫒閲嶆帓搴忥紝JMM浼氬垎鍒杩欎袱绉嶆寚浠ら噸鎺掑簭杩涜闄愬埗銆傜姝㈡寚浠ら噸鏂版帓搴忔槸閫氳繃娣诲姞鍐呭瓨灞忛殰鏉ュ疄鐜扮殑銆侸MM锛欽MM锛圝avaMemoryModel锛岀畝绉癑MM锛夋湰韬槸涓€涓娊璞$殑姒傚康锛屽疄闄呬笂骞朵笉瀛樺湪浜庡唴瀛樹腑銆傚畠鎻忚堪浜嗕竴缁勮鑼冩垨瑙勫垯锛岀▼搴忎腑鐨勬瘡涓彉閲忥紙瀹炰緥瀛楁銆侀潤鎬佸瓧娈靛拰缁勬垚鏁扮粍瀵硅薄鐨勫厓绱狅級閮介€氳繃杩欎簺瑙勮寖鎴栬鍒欐潵瀹氫箟銆侸MM鐨勫悓姝ヨ瀹氾細1銆佺嚎绋嬭В閿佸墠锛屽叡浜彉閲忓繀椤诲埛鏂板洖涓诲瓨2銆佺嚎绋嬮攣瀹氬墠锛屽繀椤诲皢涓诲瓨鐨勬渶鏂板€艰鍒拌嚜宸辩殑宸ヤ綔绌洪棿3銆佸姞閿佸拰瑙i攣蹇呴』鏄悓涓€涓攣鍐呭瓨灞忛殰锛坢emorybarriers锛夛細涓€缁勫鐞嗗櫒鎸囦护锛岀敤浜庡疄鐜板鍐呭瓨鎿嶄綔鐨勯『搴忛檺鍒躲€?銆佷负浠€涔坴olatile涓嶄繚璇佸師瀛愭€э紵鍦╦ava涓彧鏈夊彉閲忕殑璧嬪€煎拰璇诲彇鏄師瀛愮殑锛屽叾浠栨搷浣滈兘涓嶆槸鍘熷瓙鐨勩€傛墍浠ュ嵆浣縱olatile鍙互淇濊瘉淇敼鍙橀噺鐨勫彲瑙佹€э紝涔熶笉鑳戒繚璇佸師瀛愭€с€傝€侀潰瀛旔煈达細绠€鍗曚粙缁嶄竴涓媠ynchronized鍏抽敭瀛楀皬灏忛馃崄锛氬彲浠ョ敤鏉ラ攣瀹氬璞°€佹柟娉曟垨鑰呬唬鐮佸潡銆傚綋瀹冮攣瀹氫竴涓柟娉曟垨涓€涓唬鐮佸潡鏃讹紝鏈€澶氫竴涓嚎绋嬪彲浠ュ悓鏃舵墽琛岃繖娈典唬鐮併€傚湪鏃╂湡鐨凧ava鐗堟湰涓紝synchronized鍏抽敭瀛楁槸涓€涓噸閲忕骇鐨勯攣锛屾晥鐜囦綆涓嬨€俲dk1.6涔嬪悗浼樺寲浜嗐€俿ynchronized鍦╦ava鍐呭瓨妯″瀷涓叿鏈変笁涓富瑕佸姛鑳斤紝鍗筹細鍘熷瓙鎬э細閫氳繃monitorenter鍜宮onitorexit鎸囦护锛屼繚璇乻ynchronized淇敼鐨勪唬鐮佷竴娆″彧鑳借涓€涓嚎绋嬭闂紝鍦╯ynchronized涔嬪墠涓嶈兘琚叾浠栫嚎绋嬭闂攣琚噴鏀捐闂彲瑙佹€э細淇濊瘉鍏变韩鍙橀噺鐨勪慨鏀硅兘澶熻鍙婃椂鐪嬪埌銆傚湪瑙i攣鍙橀噺涔嬪墠锛屽彉閲忓繀椤诲悓姝ュ洖涓诲唴瀛橈紙瀛樺偍鍜屽啓鍏ユ搷浣滐級銆傞『搴忥細鍚屼竴鏃跺埢鍙厑璁镐竴涓嚎绋嬪涓€涓彉閲忚繘琛岄攣鎿嶄綔銆傝繖涓鍒欏喅瀹氫簡鎸佹湁鍚屼竴涓攣鐨勪袱涓悓姝ュ潡鍙兘涓茶鎵ц銆俿ynchronized涓彲浠ユ湁涓€涓嚎绋嬫潵鎵ц浠g爜鍧楋紱姣忎釜瀵硅薄鍏宠仈涓€涓洃瑙嗗櫒monitor锛屽綋鐩戣鍣ㄨ鍗犵敤鏃朵細琚攣瀹氾紝鍏朵粬绾跨▼鏃犳硶鑾峰彇鐩戣鍣ㄣ€侸VM鍦ㄦ墽琛屼竴涓嚎绋嬪唴閮ㄧ殑monitorenter鏂规硶鏃讹紝浼氬皾璇曡幏鍙栧璞$殑monitor鐨勬墍鏈夋潈锛岃繃绋嬪涓嬶細濡傛灉monitor鍏ュ彛鍙蜂负0锛屽垯绾跨▼鍙互杩涘叆monitor锛岃€宮onitorentrynumber璁剧疆涓?锛屽垯绾跨▼鎴愪负monitor鐨凮wner濡傛灉绾跨▼宸茬粡鎷ユ湁monitor骞跺厑璁稿叾閲嶆柊杩涘叆monitor锛屽垯杩涘叆monitor鐨勬潯鐩暟灏嗗鍔?锛堥€掑綊锛氳褰曠嚎绋嬫嫢鏈夐攣鐨勬鏁帮級銆傚鏋滃叾浠栫嚎绋嬪凡缁忔嫢鏈変簡monitor鐨勬墍鏈夋潈锛屽垯灏濊瘯鑾峰彇褰撳墠monitor鐨勬墍鏈夋潈绾跨▼浼氳闃诲锛岀洿鍒癿onitorentry鏁板彉涓?锛岀劧鍚庢墠鍙互閲嶆柊灏濊瘯鑾峰彇monitor鐨勬墍鏈夋潈銆俶onitorexit鎸囦护鑳藉鎵цmonitorexit鎸囦护鐨勭嚎绋嬪繀椤绘槸鎷ユ湁褰撳墠瀵硅薄鐨刴onitor鎵€鏈夋潈鐨勭嚎绋嬨€傚綋鎵цmonitorexit鏃讹紝monitorentry鐨勪釜鏁颁細鍑?锛屽綋monitorentry鐨勪釜鏁板噺涓?鏃讹紝褰撳墠绾跨▼閫€鍑簃onitor锛屼笉鍐嶆嫢鏈塵onitor鐨勬墍鏈夋潈銆傝繖鏃惰monitor闃诲鐨勭嚎绋嬪彲浠ュ皾璇曡幏鍙杕onitor鐨勬墍鏈夋潈銆傚彲瑙佹€у疄鐜板師鐞哠ynchronized閫氳繃鍐呭瓨灞忛殰淇濊瘉鍙鎬с€傚悓鏍凤紝鎴戜滑鐭ラ亾volatile閫氳繃鍐呭瓨灞忛殰淇濊瘉鍙鎬с€傚湪monitorenter鎸囦护涔嬪悗锛宻ynchronized閲岄潰鐨勫叡浜彉閲忔瘡娆¤鍙栨暟鎹兘浼氬己鍒朵粠涓诲瓨涓鍙栥€傝幏鍙栨渶鏂版暟鎹€俶onitorexit鍛戒护杩樻湁Storebarrier鐨勪綔鐢紝鍗冲鏋滄暟鎹彂鐢熷彉鍖栵紝寮哄埗灏唖ynchronized浠g爜鍧椾腑鐨勫叡浜彉閲忓埛鏂板洖涓诲瓨銆傛暟鎹慨鏀瑰悗锛岀珛鍗冲埛鏂板洖涓诲瓨銆傚叾浠栫嚎绋嬭繘鍏ynchronized浠g爜鍧楀悗锛屼娇鐢ㄥ叡浜彉閲忔椂锛屽己鍒惰鍙栦富瀛樹腑鐨勬暟鎹€傛湁搴忔墽琛岀殑鍘熷垯鏄竴鏍风殑銆俿ynchronized涔熸槸閫氳繃monitorenter鍜宮onitorexit鎸囦护宓屽叆鍒颁笂闈㈢殑memorybarrier涓紝鏃㈡湁鍔犻攣鍜岄噴鏀鹃攣鐨勫姛鑳斤紝鍙堟湁memorybarrier鐨勪綔鐢ㄣ€傝€佽竟锛氱畝鍗曚粙缁嶄笅break鍜宑ontinue鍏抽敭瀛楀皬灏忛馃崄锛歜reak鐢ㄦ潵褰诲簳缁撴潫涓€涓惊鐜紝璺冲嚭寰幆浣擄紝鎵ц寰幆鍚庨潰鐨勮鍙ャ€俢ontinue鏄烦杩囧綋鍓嶅惊鐜腑鍓╀綑鐨勮鍙ワ紝鎵ц涓嬩竴涓惊鐜€傝€侀潰瀛旔煈达細绠€鍗曚粙缁嶄竴涓媡rabsient鍏抽敭瀛楀皬灏忛馃崄锛歵ransient淇グ鐨勫彉閲忎笉鍙備笌搴忓垪鍖栧拰鍙嶅簭鍒楀寲銆傚綋瀵硅薄琚簭鍒楀寲鏃讹紝鐬€佸彉閲忕殑鍊间笉鍖呮嫭鍦ㄥ簭鍒楀寲琛ㄧず涓紝鑰岄潪鐬€佸彉閲忔槸銆傝€侀潰瀛旔煈达細绠€鍗曚粙缁嶄竴涓媔nstanceof鍏抽敭瀛楀皬灏忛馃崄锛氬湪Java涓紝鍙互閫氳繃instanceof鍏抽敭瀛楁潵鍒ゆ柇涓€涓璞℃槸鍚︽槸绫伙紙鎴栨帴鍙o紝鎶借薄绫伙紝鐖剁被锛夌殑瀹炰緥鑰侀潰瀛旔煈达細绠€鍗曚粙缁嶄竴涓媏xtends銆乮mplements鍏抽敭瀛楀皬灏忛馃崄锛歟xtends鏄户鎵挎煇涓被锛岀户鎵垮悗鍙互浣跨敤鐖剁被鐨勬柟娉曪紝涔熷彲浠ラ噸鍐欑埗绫荤殑鏂规硶銆俰mplements灏辨槸瀹炵幇澶氫釜鎺ュ彛锛屾帴鍙g殑鏂规硶涓€鑸兘鏄┖鐨勶紝蹇呴』瀹炵幇鎵嶈兘鐢ㄨ€佽劯馃懘锛氱畝鍗曚粙缁嶄竴涓媙ative鍏抽敭瀛楀皬灏忛馃崄锛歯ative涓昏鏄柟娉曠敤鐨勶紝native鏂规硶鏄寚瀹炵幇閫氳繃闈濲ava璇█锛堜緥濡侰鎴朇++锛夌紪鍐欒鏂规硶銆備富瑕佸師鍥犳槸JAVA鏃犳硶鎿嶄綔鎿嶄綔绯荤粺搴曞眰锛屼絾鍙互閫氳繃jni锛坖avanativeinterface锛夎皟鐢ㄥ叾浠栬瑷€瀹炵幇搴曞眰璁块棶銆侾S锛欽NI鍗矹avaNativeInterface锛圝avaNativeInterface锛夛紝涓€绉嶅師鐢熺紪绋嬫帴鍙o紝瀹冩槸Java杞欢寮€鍙戝伐鍏峰寘锛坖avaSoftwareDevelopmentKit锛孲DK锛夌殑涓€閮ㄥ垎銆侸NI鍏佽Java浠g爜浣跨敤鍏朵粬璇█缂栧啓鐨勪唬鐮佸拰浠g爜搴撱€侷nvocationAPI锛圝NI鐨勪竴閮ㄥ垎锛夊彲鐢ㄤ簬灏咼ava铏氭嫙鏈?JVM)宓屽叆鍒版湰鏈哄簲鐢ㄧ▼搴忎腑锛屼粠鑰屽厑璁哥▼搴忓憳浠庢湰鏈轰唬鐮佷腑璋冪敤Java浠g爜銆?/p>
