锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美精品一区二区三区涩爱蜜,av激情成人网,超碰97在线播放http://www.aygfsteel.com/baiyucheng/Eclipse錛岃鎴戞鍠滆鎴戝咖錛?/description>zh-cnSat, 14 Jun 2025 18:09:37 GMTSat, 14 Jun 2025 18:09:37 GMT60淇敼eclipse鍚姩鍥劇墖http://www.aygfsteel.com/baiyucheng/archive/2009/04/13/265237.html鐧界帀鎴?/dc:creator>鐧界帀鎴?/author>Mon, 13 Apr 2009 02:53:00 GMThttp://www.aygfsteel.com/baiyucheng/archive/2009/04/13/265237.htmlhttp://www.aygfsteel.com/baiyucheng/comments/265237.htmlhttp://www.aygfsteel.com/baiyucheng/archive/2009/04/13/265237.html#Feedback1http://www.aygfsteel.com/baiyucheng/comments/commentRss/265237.htmlhttp://www.aygfsteel.com/baiyucheng/services/trackbacks/265237.html鏂規(guī)硶1錛氬湪\plugins\org.eclipse.platform_xxxxxxxxx 鐩綍涓嬬敤鎯寵鐨勫浘鐗囨洿鎹㈠師鏈夌殑splash.bmp鍗沖彲
鏂規(guī)硶2錛氫慨鏀瑰惎鍔ㄥ弬鏁幫細eclipse.exe -vmargs -Dosgi.splashLocation=鍥劇墖璺緞錛堝 C:\picture_path\splash.bmp錛?br />               鎴栧湪eclipse.ini涓姞鍏ワ細-Dosgi.splashLocation=鍥劇墖璺緞



]]>
Java涓璼ynchronized鐨勪嬌鐢ㄦ柟娉?/title><link>http://www.aygfsteel.com/baiyucheng/archive/2008/12/01/243592.html</link><dc:creator>鐧界帀鎴?/dc:creator><author>鐧界帀鎴?/author><pubDate>Sun, 30 Nov 2008 16:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/baiyucheng/archive/2008/12/01/243592.html</guid><wfw:comment>http://www.aygfsteel.com/baiyucheng/comments/243592.html</wfw:comment><comments>http://www.aygfsteel.com/baiyucheng/archive/2008/12/01/243592.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/baiyucheng/comments/commentRss/243592.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/baiyucheng/services/trackbacks/243592.html</trackback:ping><description><![CDATA[<strong>synchronized鐨勪竴涓畝鍗曚緥瀛?br /> </strong> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> TextThread<br /> <img id="Codehighlighter1_26_263_Open_Image" onclick="this.style.display='none'; Codehighlighter1_26_263_Open_Text.style.display='none'; Codehighlighter1_26_263_Closed_Image.style.display='inline'; Codehighlighter1_26_263_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_26_263_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_26_263_Closed_Text.style.display='none'; Codehighlighter1_26_263_Open_Image.style.display='inline'; Codehighlighter1_26_263_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" />銆€銆€</span><span id="Codehighlighter1_26_263_Open_Text"><span style="color: #000000">{<br /> <img id="Codehighlighter1_30_53_Open_Image" onclick="this.style.display='none'; Codehighlighter1_30_53_Open_Text.style.display='none'; Codehighlighter1_30_53_Closed_Image.style.display='inline'; Codehighlighter1_30_53_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_30_53_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_30_53_Closed_Text.style.display='none'; Codehighlighter1_30_53_Open_Image.style.display='inline'; Codehighlighter1_30_53_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆€</span><span id="Codehighlighter1_30_53_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/</span><span id="Codehighlighter1_30_53_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€* </span><span style="color: #808080">@param</span><span style="color: #008000"> args<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />銆€銆€</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> main(String[] args)<br /> <img id="Codehighlighter1_98_259_Open_Image" onclick="this.style.display='none'; Codehighlighter1_98_259_Open_Text.style.display='none'; Codehighlighter1_98_259_Closed_Image.style.display='inline'; Codehighlighter1_98_259_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_98_259_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_98_259_Closed_Text.style.display='none'; Codehighlighter1_98_259_Open_Image.style.display='inline'; Codehighlighter1_98_259_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆€銆€</span><span id="Codehighlighter1_98_259_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #008000">//</span><span style="color: #008000"> TODO 鑷姩鐢熸垚鏂規(guī)硶瀛樻牴</span><span style="color: #008000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" /></span><span style="color: #000000">銆€銆€TxtThread tt </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> TxtThread();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">new</span><span style="color: #000000"> Thread(tt).start();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">new</span><span style="color: #000000"> Thread(tt).start();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">new</span><span style="color: #000000"> Thread(tt).start();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">new</span><span style="color: #000000"> Thread(tt).start();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />銆€銆€}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />銆€銆€}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">class</span><span style="color: #000000"> TxtThread </span><span style="color: #0000ff">implements</span><span style="color: #000000"> Runnable<br /> <img id="Codehighlighter1_305_611_Open_Image" onclick="this.style.display='none'; Codehighlighter1_305_611_Open_Text.style.display='none'; Codehighlighter1_305_611_Closed_Image.style.display='inline'; Codehighlighter1_305_611_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_305_611_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_305_611_Closed_Text.style.display='none'; Codehighlighter1_305_611_Open_Image.style.display='inline'; Codehighlighter1_305_611_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" alt="" />銆€銆€</span><span id="Codehighlighter1_305_611_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">int</span><span style="color: #000000"> num </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">100</span><span style="color: #000000">;<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€String str </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> String();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> run()<br /> <img id="Codehighlighter1_375_607_Open_Image" onclick="this.style.display='none'; Codehighlighter1_375_607_Open_Text.style.display='none'; Codehighlighter1_375_607_Closed_Image.style.display='inline'; Codehighlighter1_375_607_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_375_607_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_375_607_Closed_Text.style.display='none'; Codehighlighter1_375_607_Open_Image.style.display='inline'; Codehighlighter1_375_607_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆€銆€</span><span id="Codehighlighter1_375_607_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">while</span><span style="color: #000000"> (</span><span style="color: #0000ff">true</span><span style="color: #000000">)<br /> <img id="Codehighlighter1_394_603_Open_Image" onclick="this.style.display='none'; Codehighlighter1_394_603_Open_Text.style.display='none'; Codehighlighter1_394_603_Closed_Image.style.display='inline'; Codehighlighter1_394_603_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_394_603_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_394_603_Closed_Text.style.display='none'; Codehighlighter1_394_603_Open_Image.style.display='inline'; Codehighlighter1_394_603_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆€銆€</span><span id="Codehighlighter1_394_603_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">synchronized</span><span style="color: #000000">(str)<br /> <img id="Codehighlighter1_418_599_Open_Image" onclick="this.style.display='none'; Codehighlighter1_418_599_Open_Text.style.display='none'; Codehighlighter1_418_599_Closed_Image.style.display='inline'; Codehighlighter1_418_599_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_418_599_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_418_599_Closed_Text.style.display='none'; Codehighlighter1_418_599_Open_Image.style.display='inline'; Codehighlighter1_418_599_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆€銆€</span><span id="Codehighlighter1_418_599_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">if</span><span style="color: #000000"> (num</span><span style="color: #000000">></span><span style="color: #000000">0</span><span style="color: #000000">)<br /> <img id="Codehighlighter1_435_595_Open_Image" onclick="this.style.display='none'; Codehighlighter1_435_595_Open_Text.style.display='none'; Codehighlighter1_435_595_Closed_Image.style.display='inline'; Codehighlighter1_435_595_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_435_595_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_435_595_Closed_Text.style.display='none'; Codehighlighter1_435_595_Open_Image.style.display='inline'; Codehighlighter1_435_595_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆€銆€</span><span id="Codehighlighter1_435_595_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">try</span><span style="color: #000000"><br /> <img id="Codehighlighter1_445_469_Open_Image" onclick="this.style.display='none'; Codehighlighter1_445_469_Open_Text.style.display='none'; Codehighlighter1_445_469_Closed_Image.style.display='inline'; Codehighlighter1_445_469_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_445_469_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_445_469_Closed_Text.style.display='none'; Codehighlighter1_445_469_Open_Image.style.display='inline'; Codehighlighter1_445_469_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆€銆€</span><span id="Codehighlighter1_445_469_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€Thread.sleep(</span><span style="color: #000000">10</span><span style="color: #000000">);<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />銆€銆€}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€</span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception e)<br /> <img id="Codehighlighter1_494_516_Open_Image" onclick="this.style.display='none'; Codehighlighter1_494_516_Open_Text.style.display='none'; Codehighlighter1_494_516_Closed_Image.style.display='inline'; Codehighlighter1_494_516_Closed_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" alt="" /><img id="Codehighlighter1_494_516_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_494_516_Closed_Text.style.display='none'; Codehighlighter1_494_516_Open_Image.style.display='inline'; Codehighlighter1_494_516_Open_Text.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" alt="" />銆€銆€</span><span id="Codehighlighter1_494_516_Open_Text"><span style="color: #000000">{<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€e.getMessage();<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />銆€銆€}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" align="top" alt="" />銆€銆€System.out.println(Thread.currentThread().getName()</span><span style="color: #000000">+</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">this is </span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000"> num</span><span style="color: #000000">--</span><span style="color: #000000">);<br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />銆€銆€}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />銆€銆€}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />銆€銆€}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" alt="" />銆€銆€}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" alt="" />銆€銆€}</span></span><span style="color: #000000"><br /> <img src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align="top" alt="" /></span></div> <br /> 涓婇潰鐨勪緥瀛愪腑涓轟簡鍒墮€犱竴涓椂闂村樊,涔熷氨鏄嚭閿欑殑鏈轟細,浣跨敤浜員hread.sleep(10)<br /> 銆€銆€Java瀵瑰綰跨▼鐨勬敮鎸佷笌鍚屾鏈哄埗娣卞彈澶у鐨勫枩鐖憋紝浼間箮鐪嬭搗鏉ヤ嬌鐢ㄤ簡synchronized鍏抽敭瀛楀氨鍙互杞繪澗鍦拌В鍐沖綰跨▼鍏變韓鏁版嵁鍚屾闂銆傚埌搴曞浣曪紵鈥曗€曡繕寰楀synchronized鍏抽敭瀛楃殑浣滅敤榪涜娣卞叆浜嗚В鎵嶅彲瀹氳銆?br /> 銆€銆€鎬葷殑璇存潵錛宻ynchronized鍏抽敭瀛楀彲浠ヤ綔涓哄嚱鏁扮殑淇グ絎︼紝涔熷彲浣滀負鍑芥暟鍐呯殑璇彞錛屼篃灝辨槸騫蟲椂璇寸殑鍚屾鏂規(guī)硶鍜屽悓姝ヨ鍙ュ潡銆傚鏋滃啀緇嗙殑鍒嗙被錛宻ynchronized鍙綔鐢ㄤ簬instance鍙橀噺銆乷bject reference錛堝璞″紩鐢級銆乻tatic鍑芥暟鍜宑lass literals(綾誨悕縐板瓧闈㈠父閲?韜笂銆?br /> 銆€銆€<strong>鍦ㄨ繘涓€姝ラ槓榪頒箣鍓嶏紝鎴戜滑闇€瑕佹槑紜嚑鐐癸細<br /> </strong>銆€銆€A錛庢棤璁簊ynchronized鍏抽敭瀛楀姞鍦ㄦ柟娉曚笂榪樻槸瀵硅薄涓婏紝瀹冨彇寰楃殑閿侀兘鏄璞★紝鑰屼笉鏄妸涓€孌典唬鐮佹垨鍑芥暟褰撲綔閿佲€曗€曡€屼笖鍚屾鏂規(guī)硶寰堝彲鑳借繕浼氳鍏朵粬綰跨▼鐨勫璞¤闂€?br /> 銆€銆€B錛庢瘡涓璞″彧鏈変竴涓攣錛坙ock錛変笌涔嬬浉鍏寵仈銆?br /> 銆€銆€C錛庡疄鐜板悓姝ユ槸瑕佸緢澶х殑緋葷粺寮€閿€浣滀負浠d環(huán)鐨勶紝鐢氳嚦鍙兘閫犳垚姝婚攣錛屾墍浠ュ敖閲忛伩鍏嶆棤璋撶殑鍚屾鎺у埗銆?br /> 銆€銆€鎺ョ潃鏉ヨ璁簊ynchronized鐢ㄥ埌涓嶅悓鍦版柟瀵逛唬鐮佷駭鐢熺殑褰卞搷錛?br /> 銆€銆€鍋囪P1銆丳2鏄悓涓€涓被鐨勪笉鍚屽璞★紝榪欎釜綾諱腑瀹氫箟浜嗕互涓嬪嚑縐嶆儏鍐電殑鍚屾鍧楁垨鍚屾鏂規(guī)硶錛孭1銆丳2灝遍兘鍙互璋冪敤瀹冧滑銆?br /> 銆€銆€<strong>1錛?鎶妔ynchronized褰撲綔鍑芥暟淇グ絎︽椂錛岀ず渚嬩唬鐮佸涓嬶細</strong><br /> 銆€銆€Public synchronized void methodAAA()<br /> 銆€銆€{<br /> 銆€銆€//….<br /> 銆€銆€}<br /> 銆€銆€榪欎篃灝辨槸鍚屾鏂規(guī)硶錛岄偅榪欐椂synchronized閿佸畾鐨勬槸鍝釜瀵硅薄鍛紵瀹冮攣瀹氱殑鏄皟鐢ㄨ繖涓悓姝ユ柟娉曞璞°€備篃灝辨槸璇達紝褰撲竴涓璞1鍦ㄤ笉鍚岀殑綰跨▼涓墽琛岃繖涓悓姝ユ柟娉曟椂錛屽畠浠箣闂翠細褰㈡垚浜掓枼錛岃揪鍒板悓姝ョ殑鏁堟灉銆備絾鏄繖涓璞℃墍灞炵殑Class鎵€浜х敓鐨勫彟涓€瀵硅薄P2鍗村彲浠ヤ換鎰忚皟鐢ㄨ繖涓鍔犱簡synchronized鍏抽敭瀛楃殑鏂規(guī)硶銆?br /> 銆€銆€涓婅竟鐨勭ず渚嬩唬鐮佺瓑鍚屼簬濡備笅浠g爜錛?br /> 銆€銆€public void methodAAA()<br /> 銆€銆€{<br /> 銆€銆€synchronized (this) // (1)<br /> 銆€銆€{<br /> 銆€銆€//…..<br /> 銆€銆€}<br /> 銆€銆€}<br /> 銆€銆€(1)澶勭殑this鎸囩殑鏄粈涔堝憿錛熷畠鎸囩殑灝辨槸璋冪敤榪欎釜鏂規(guī)硶鐨勫璞★紝濡侾1銆傚彲瑙佸悓姝ユ柟娉曞疄璐ㄦ槸灝唖ynchronized浣滅敤浜巓bject reference銆傗€曗€曢偅涓嬁鍒頒簡P1瀵硅薄閿佺殑綰跨▼錛屾墠鍙互璋冪敤P1鐨勫悓姝ユ柟娉曪紝鑰屽P2鑰岃█錛孭1榪欎釜閿佷笌瀹冩涓嶇浉騫詫紝紼嬪簭涔熷彲鑳藉湪榪欑鎯呭艦涓嬫憜鑴卞悓姝ユ満鍒剁殑鎺у埗錛岄€犳垚鏁版嵁娣蜂貢錛?br /> <br /> <strong>       2錛庡悓姝ュ潡錛岀ず渚嬩唬鐮佸涓嬶細<br /> </strong>銆€銆€public void method3(SomeObject so)<br /> 銆€銆€{<br /> 銆€銆€synchronized(so)<br /> 銆€銆€{<br /> 銆€銆€//…..<br /> 銆€銆€}<br /> 銆€銆€}<br /> 銆€銆€榪欐椂錛岄攣灝辨槸so榪欎釜瀵硅薄錛岃皝鎷垮埌榪欎釜閿佽皝灝卞彲浠ヨ繍琛屽畠鎵€鎺у埗鐨勯偅孌典唬鐮併€傚綋鏈変竴涓槑紜殑瀵硅薄浣滀負閿佹椂錛屽氨鍙互榪欐牱鍐欑▼搴忥紝浣嗗綋娌℃湁鏄庣‘鐨勫璞′綔涓洪攣錛屽彧鏄兂璁╀竴孌典唬鐮佸悓姝ユ椂錛屽彲浠ュ垱寤轟竴涓壒孌婄殑instance鍙橀噺錛堝畠寰楁槸涓€涓璞★級鏉ュ厖褰撻攣錛?br /> 銆€銆€class Foo implements Runnable<br /> 銆€銆€{<br /> 銆€銆€private byte[] lock = new byte[0]; // 鐗規(guī)畩鐨刬nstance鍙橀噺<br /> 銆€銆€Public void methodA()<br /> 銆€銆€{<br /> 銆€銆€synchronized(lock) { //… }<br /> 銆€銆€}<br /> 銆€銆€//…..<br /> 銆€銆€}<br /> 銆€銆€娉細闆墮暱搴︾殑byte鏁扮粍瀵硅薄鍒涘緩璧鋒潵灝嗘瘮浠諱綍瀵硅薄閮界粡嫻庘€曗€曟煡鐪嬬紪璇戝悗鐨勫瓧鑺傜爜錛氱敓鎴愰浂闀垮害鐨刡yte[]瀵硅薄鍙渶3鏉℃搷浣滅爜錛岃€孫bject lock = new Object()鍒欓渶瑕?琛屾搷浣滅爜銆?br /> 銆€銆€<strong>3錛庡皢synchronized浣滅敤浜巗tatic 鍑芥暟錛岀ず渚嬩唬鐮佸涓嬶細<br /> </strong>銆€銆€Class Foo<br /> 銆€銆€{<br /> 銆€銆€public synchronized static void methodAAA() // 鍚屾鐨剆tatic 鍑芥暟<br /> 銆€銆€{<br /> 銆€銆€//….<br /> 銆€銆€}<br /> 銆€銆€public void methodBBB()<br /> 銆€銆€{<br /> 銆€銆€synchronized(Foo.class) // class literal(綾誨悕縐板瓧闈㈠父閲?<br /> 銆€銆€}<br /> 銆€銆€}<br /> 銆€銆€浠g爜涓殑methodBBB()鏂規(guī)硶鏄妸class literal浣滀負閿佺殑鎯呭喌錛屽畠鍜屽悓姝ョ殑static鍑芥暟浜х敓鐨勬晥鏋滄槸涓€鏍風殑錛屽彇寰楃殑閿佸緢鐗瑰埆錛屾槸褰撳墠璋冪敤榪欎釜鏂規(guī)硶鐨勫璞℃墍灞炵殑綾伙紙Class錛岃€屼笉鍐嶆槸鐢辮繖涓狢lass浜х敓鐨勬煇涓叿浣撳璞′簡錛夈€?br /> 銆€銆€璁板緱鍦ㄣ€奅ffective Java銆嬩竴涔︿腑鐪嬪埌榪囧皢 Foo.class鍜?P1.getClass()鐢ㄤ簬浣滃悓姝ラ攣榪樹笉涓€鏍鳳紝涓嶈兘鐢≒1.getClass()鏉ヨ揪鍒伴攣榪欎釜Class鐨勭洰鐨勩€侾1鎸囩殑鏄敱Foo綾諱駭鐢熺殑瀵硅薄銆?br /> 銆€銆€鍙互鎺ㄦ柇錛氬鏋滀竴涓被涓畾涔変簡涓€涓猻ynchronized鐨剆tatic鍑芥暟A錛屼篃瀹氫箟浜嗕竴涓猻ynchronized 鐨刬nstance鍑芥暟B錛岄偅涔堣繖涓被鐨勫悓涓€瀵硅薄Obj鍦ㄥ綰跨▼涓垎鍒闂瓵鍜孊涓や釜鏂規(guī)硶鏃訛紝涓嶄細鏋勬垚鍚屾錛屽洜涓哄畠浠殑閿侀兘涓嶄竴鏍楓€侫鏂規(guī)硶鐨勯攣鏄疧bj榪欎釜瀵硅薄錛岃€孊鐨勯攣鏄疧bj鎵€灞炵殑閭d釜Class銆?br /> 銆€銆€<strong>灝忕粨濡備笅錛?br /> </strong>銆€銆€鎼炴竻妤歴ynchronized閿佸畾鐨勬槸鍝釜瀵硅薄錛屽氨鑳藉府鍔╂垜浠璁℃洿瀹夊叏鐨勫綰跨▼紼嬪簭銆?br /> 銆€銆€<strong>榪樻湁涓€浜涙妧宸у彲浠ヨ鎴戜滑瀵瑰叡浜祫婧愮殑鍚屾璁塊棶鏇村姞瀹夊叏錛?br /> </strong>銆€銆€1錛?瀹氫箟private 鐨刬nstance鍙橀噺+瀹冪殑 get鏂規(guī)硶錛岃€屼笉瑕佸畾涔塸ublic/protected鐨刬nstance鍙橀噺銆傚鏋滃皢鍙橀噺瀹氫箟涓簆ublic錛屽璞″湪澶栫晫鍙互緇曡繃鍚屾鏂規(guī)硶鐨勬帶鍒惰€岀洿鎺ュ彇寰楀畠錛屽茍鏀瑰姩瀹冦€傝繖涔熸槸JavaBean鐨勬爣鍑嗗疄鐜版柟寮忎箣涓€銆?br /> 銆€銆€2錛?濡傛灉instance鍙橀噺鏄竴涓璞★紝濡傛暟緇勬垨ArrayList浠€涔堢殑錛岄偅涓婅堪鏂規(guī)硶浠嶇劧涓嶅畨鍏紝鍥犱負褰撳鐣屽璞¢€氳繃get鏂規(guī)硶鎷垮埌榪欎釜instance瀵硅薄鐨勫紩鐢ㄥ悗錛屽張灝嗗叾鎸囧悜鍙︿竴涓璞★紝閭d箞榪欎釜private鍙橀噺涔熷氨鍙樹簡錛屽矀涓嶆槸寰堝嵄闄┿€傝繖涓椂鍊欏氨闇€瑕佸皢get鏂規(guī)硶涔熷姞涓妔ynchronized鍚屾錛屽茍涓旓紝鍙繑鍥炶繖涓猵rivate瀵硅薄鐨刢lone()鈥曗€曡繖鏍鳳紝璋冪敤绔緱鍒扮殑灝辨槸瀵硅薄鍓湰鐨勫紩鐢ㄤ簡銆? <img src ="http://www.aygfsteel.com/baiyucheng/aggbug/243592.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/baiyucheng/" target="_blank">鐧界帀鎴?/a> 2008-12-01 00:06 <a href="http://www.aygfsteel.com/baiyucheng/archive/2008/12/01/243592.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>MQ Java API 緙栫▼http://www.aygfsteel.com/baiyucheng/archive/2008/11/27/243117.html鐧界帀鎴?/dc:creator>鐧界帀鎴?/author>Thu, 27 Nov 2008 15:33:00 GMThttp://www.aygfsteel.com/baiyucheng/archive/2008/11/27/243117.htmlhttp://www.aygfsteel.com/baiyucheng/comments/243117.htmlhttp://www.aygfsteel.com/baiyucheng/archive/2008/11/27/243117.html#Feedback0http://www.aygfsteel.com/baiyucheng/comments/commentRss/243117.htmlhttp://www.aygfsteel.com/baiyucheng/services/trackbacks/243117.html闃呰鍏ㄦ枃

]]>
Eclipse 騫沖彴浣撶郴緇撴瀯http://www.aygfsteel.com/baiyucheng/archive/2008/11/26/242734.html鐧界帀鎴?/dc:creator>鐧界帀鎴?/author>Wed, 26 Nov 2008 02:18:00 GMThttp://www.aygfsteel.com/baiyucheng/archive/2008/11/26/242734.htmlhttp://www.aygfsteel.com/baiyucheng/comments/242734.htmlhttp://www.aygfsteel.com/baiyucheng/archive/2008/11/26/242734.html#Feedback0http://www.aygfsteel.com/baiyucheng/comments/commentRss/242734.htmlhttp://www.aygfsteel.com/baiyucheng/services/trackbacks/242734.htmlhttp://www-128.ibm.com/developerworks/cn/linux/opensource/os-ecov/index.html#N10057
author:David Gallardo


Eclipse 騫沖彴鏄竴涓叿鏈変竴緇勫己澶ф湇鍔$殑妗嗘灦錛岃繖浜涙湇鍔℃敮鎸佹彃浠訛紝姣斿 JDT 鍜屾彃浠跺紑鍙戠幆澧冿紙PDE錛夈€傚畠鐢卞嚑涓富瑕佺殑閮ㄥ垎鏋勬垚錛氬鉤鍙拌繍琛屽簱銆佸伐浣滃尯銆佸伐浣滃彴銆佸洟闃熸敮鎸佸拰甯姪銆?br />

鍥?10. Eclipse 騫沖彴浣撶郴緇撴瀯





騫沖彴

騫沖彴榪愯搴撴槸鍐呮牳錛屽畠鍦ㄥ惎鍔ㄦ椂媯€鏌ュ凡瀹夎浜嗗摢浜涙彃浠訛紝騫跺垱寤哄叧浜庡畠浠殑娉ㄥ唽琛ㄤ俊鎭€備負闄嶄綆鍚姩鏃墮棿鍜岃祫婧愪嬌鐢紝瀹冨湪瀹為檯闇€瑕佷換浣曟彃浠舵椂鎵嶅姞杞借鎻掍歡銆傞櫎浜嗗唴鏍稿錛屽叾浠栨瘡鏍蜂笢瑗塊兘鏄綔涓烘彃浠舵潵瀹炵幇鐨勩€?


宸ヤ綔鍖?

宸ヤ綔鍖烘槸璐熻矗綆$悊鐢ㄦ埛璧勬簮鐨勬彃浠躲€傝繖鍖呮嫭鐢ㄦ埛鍒涘緩鐨勯」鐩€侀偅浜涢」鐩腑鐨勬枃浠訛紝浠ュ強鏂囦歡鍙樻洿鍜屽叾浠栬祫婧愩€傚伐浣滃尯榪樿礋璐i€氱煡鍏朵粬鎻掍歡鍏充簬璧勬簮鍙樻洿鐨勪俊鎭紝姣斿鏂囦歡鍒涘緩銆佸垹闄ゆ垨鏇存敼銆?


宸ヤ綔鍙?

宸ヤ綔鍙頒負 Eclipse 鎻愪緵鐢ㄦ埛鐣岄潰銆傚畠鏄嬌鐢ㄦ爣鍑嗙獥鍙e伐鍏峰寘錛圫WT錛夊拰涓€涓洿楂樼駭鐨?API錛圝Face錛夋潵鏋勫緩鐨勶紱SWT 鏄?Java 鐨?Swing/AWT GUI API 鐨勯潪鏍囧噯鏇夸唬鑰咃紝JFace 鍒欏緩绔嬪湪 SWT 鍩虹涓婏紝鎻愪緵鐢ㄦ埛鐣岄潰緇勪歡銆?


SWT 宸茶璇佹槑鏄?Eclipse 鏈€鍏蜂簤璁殑閮ㄥ垎銆係WT 姣?Swing 鎴?SWT 鏇寸揣瀵嗗湴鏄犲皠鍒板簳灞傛搷浣滅郴緇熺殑鏈満鍥懼艦鍔熻兘錛岃繖涓嶄粎浣垮緱 SWT 鏇村揩閫燂紝鑰屼笖浣垮緱 Java 紼嬪簭鍏鋒湁鏇村儚鏈満搴旂敤紼嬪簭鐨勫瑙傚拰鎰熻銆備嬌鐢ㄨ繖涓柊鐨?GUI API鍙兘浼氶檺鍒?Eclipse 宸ヤ綔鍙扮殑鍙Щ妞嶆€э紝涓嶈繃閽堝澶у鏁版祦琛屾搷浣滅郴緇熺殑 SWT 縐繪鐗堟湰宸茬粡鍙敤銆?br />

Eclipse 瀵?SWT 鐨勪嬌鐢ㄥ彧浼氬獎鍝?Eclipse 鑷韓鐨勫彲縐繪鎬р€斺€斾嬌鐢?Eclipse 鏋勫緩鐨勪換浣?Java 搴旂敤紼嬪簭閮戒笉浼氬彈鍒板獎鍝嶏紝闄ら潪瀹冧滑浣跨敤 SWT 鑰屼笉鏄嬌鐢?Swing/AWT銆?br />

鍥㈤槦鏀寔

鍥㈤槦鏀寔緇勪歡璐熻矗鎻愪緵鐗堟湰鎺у埗鍜岄厤緗鐞嗘敮鎸併€傚畠鏍規(guī)嵁闇€瑕佹坊鍔犺鍥撅紝浠ュ厑璁哥敤鎴蜂笌鎵€浣跨敤鐨勪換浣曠増鏈帶鍒剁郴緇燂紙濡傛灉鏈夌殑璇濓級浜や簰銆傚ぇ澶氭暟鎻掍歡閮戒笉闇€瑕佷笌鍥㈤槦鏀寔緇勪歡浜や簰錛岄櫎闈炲畠浠彁渚涚増鏈帶鍒舵湇鍔°€?


甯姪

甯姪緇勪歡鍏鋒湁涓?Eclipse 騫沖彴鏈韓鐩稿綋鐨勫彲鎵╁睍鑳藉姏銆備笌鎻掍歡鍚?Eclipse 娣誨姞鍔熻兘鐩稿悓錛屽府鍔╂彁渚涗竴涓檮鍔犵殑瀵艱埅緇撴瀯錛屽厑璁稿伐鍏蜂互 HTML 鏂囦歡鐨勫艦寮忔坊鍔犳枃妗c€?br />

]]>
Netbeans鐗堟湰璇█璁劇疆http://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242665.html鐧界帀鎴?/dc:creator>鐧界帀鎴?/author>Tue, 25 Nov 2008 15:14:00 GMThttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242665.htmlhttp://www.aygfsteel.com/baiyucheng/comments/242665.htmlhttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242665.html#Feedback0http://www.aygfsteel.com/baiyucheng/comments/commentRss/242665.htmlhttp://www.aygfsteel.com/baiyucheng/services/trackbacks/242665.html        鏈€榪戦」鐩鐢ㄥ埌Netbeans錛屼簬鏄湪緗戜笂down浜哊etbeans6.1錛岃涓婁箣鍚庢槸涓枃鐗堢殑銆傜寽鎯充竴瀹氭槸鍦ㄤ笅杞界殑鏃跺€欐病鏈夐€夋嫨璇█閫夐」錛屾墍浠ュ張閲嶆柊閫夋嫨浜咵nglish鐗堟湰涓嬭澆浜嗕竴嬈°€傚彲瀹夎鐨勬椂鍊欒繕鏄腑鏂囩増銆備簬鏄笂緗戞悳绱簡涓€涓嬭祫鏂欐墠鐭ラ亾鍙互閫氳繃閰嶇疆Netbeans鍚姩鍙傛暟鏉ユ敼鍙樼増鏈璦€銆傝鎯沖皢涓枃鐗堣漿鎹㈡垚鑻辨枃鐗堝彧闇€鍦ㄥ湪 IDE-HOME/etc/netbeans.conf 鏂囦歡涓緗?netbeans_default_options 娣誨姞鍚姩鍙傛暟錛?-locale en_US 鍗沖彲錛屽涓嬶細
netbeans_default_options="-J-Dorg.netbeans.modules.tomcat.autoregister.token=1225973137468 -J-Dorg.netbeans.modules.tomcat.autoregister.catalinaHome=\"D:\Tomcat6\" -J-Dcom.sun.aas.installRoot=\"D:\Program Files\glassfish-v2ur2\" -J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true --locale en_US "



]]>
緇欏伐紼嬫坊鍔燦aturehttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242662.html鐧界帀鎴?/dc:creator>鐧界帀鎴?/author>Tue, 25 Nov 2008 14:57:00 GMThttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242662.htmlhttp://www.aygfsteel.com/baiyucheng/comments/242662.htmlhttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242662.html#Feedback0http://www.aygfsteel.com/baiyucheng/comments/commentRss/242662.htmlhttp://www.aygfsteel.com/baiyucheng/services/trackbacks/242662.htmlpackage com.byc.natures;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectNature;
import org.eclipse.core.runtime.CoreException;


/**
 * 
 * 
@author Bai Yucheng 2008-4-28
 * 
 
*/

public class MyProjectNature implements IProjectNature {
 
private IProject project;

 
public void configure() throws CoreException {
  
//do nothing
 }


 
public void deconfigure() throws CoreException {
  
//do nothing
 }


 
public IProject getProject() {
  
return project;
 }


 
public void setProject(IProject iproject) {
  project 
= iproject;
 }


}



2. 娣誨姞鎵╁睍鐐癸細org.eclipse.core.resources.natures錛岃緗甤lass灞炴€т負鎴戜滑鐨刵ature

<extension
      
id="com.byc.MyProjectNature"
      name
="Project Nature"
      point
="org.eclipse.core.resources.natures">
   
<runtime>
      
<run
            
class="com.byc.natures.MyProjectNature">
      
</run>
   
</runtime>
</extension>


3. 鍦ㄦ柊寤哄伐紼嬬殑鍚戝涓坊鍔犳垜浠殑nature錛屾坊鍔犳柟娉曚負錛?/p>

private void addProjectNature(IProject project) throws CoreException {
   
if (!project.hasNature(PROJECT_NATURE)) {
   
try {
    IProjectDescription description 
= project.getDescription();
    String[] natures 
= description.getNatureIds();
    String[] newNatures 
= new String[natures.length + 1];
    System.arraycopy(natures, 
0, newNatures, 0, natures.length);
    newNatures[natures.length] 
= PROJECT_NATURE;
    description.setNatureIds(newNatures);
    project.setDescription(description, 
null);
   }
 catch (CoreException e) {
    e.printStackTrace();
   }

  }

 }


]]>
EMF鍩虹鐭ヨ瘑縐瘡http://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242657.html鐧界帀鎴?/dc:creator>鐧界帀鎴?/author>Tue, 25 Nov 2008 14:26:00 GMThttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242657.htmlhttp://www.aygfsteel.com/baiyucheng/comments/242657.htmlhttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242657.html#Feedback0http://www.aygfsteel.com/baiyucheng/comments/commentRss/242657.htmlhttp://www.aygfsteel.com/baiyucheng/services/trackbacks/242657.html
  1. EMF core 闄や簡鐢熸垚model鍜?/span>model implementation澶栵紝鑷沖皯榪樼敓鎴愪袱涓帴鍙o細*Factory鍜?/span>*Package銆傚叾涓?/span>, Factory錛氱敓鎴愬疄渚嬬殑宸ュ巶錛?/span>Package錛氭彁渚涗竴浜涢潤鎬佺殑constants錛堜緥濡傦細琚敤鏉ョ敓鎴愭柟娉曠殑feature constants     錛夊拰涓€浜涜闂ā鍨嬪厓鏁版嵁鐨勫叕鐢ㄦ柟娉曘€?/span>

 

2. EMF鐢熸垚鐨勬柟娉曢兘甯︽湁“@generated”鏍囩銆?/span>EMF閲嶆柊鐢熸垚浠g爜鏃朵笉浼氳鐩栫敤鎴鋒坊鍔犵殑鏂規(guī)硶錛堜笉甯︽湁@generated錛夈€?/span>

 

3. 鍏充簬URI錛?/span>Uniform Resource Identifier錛?/span>

鍦?/span>EMF 涓槸閫氳繃URI鏉ユ爣璇?/span>package鐨勶紝騫朵笖閫氳繃URI鏉ュ敮涓€鐨勭‘瀹?/span>resources銆?/span>URI鍖呮嫭涓変釜閮ㄥ垎錛?/span>a scheme, a scheme-specific part鍜?/span>an optional fragment銆?/span>scheme涓昏鍐沖畾浜嗚闂?/span>

璧勬簮鐨勫崗璁紱姣斿錛?/span>Platform:/resource/……涓殑platform銆?/span>scheme-specific part鍖呭惈涓€浜?/span>authority, device鍜屼竴浜?/span>segments錛屽file:/c:/dir1/dir2/myfile.xml錛?/span>file鏄崗璁紝娌℃湁authority錛?/span>c:鏄?/span>device,鍓╀笅鐨?/span>3涓槸segments銆?/span>URI fragment 鏍囪瘑浜?/span>resource鍐呴儴鐨勬煇涓叿浣撶殑鍐呭銆傚錛?/span>file:/c:/dir1/dir2/myfile.xml#loc涓殑#loc銆?/span> EMF閫氳繃甯︽湁fragment鐨?/span>URI鏉ヨ闂祫婧愪腑鐨?/span>EObjects銆?/span>

 

4. 鍏充簬URIConverter

URIConverter鐨勪綔鐢ㄦ槸normalize涓€涓緭鍏?/span>URI錛屼嬌涔嬫垚涓轟竴涓疄闄呯殑閽堝鏌愪釜resource鐨?/span>URI銆傚畠鍙互鎶?/span>namespace URIs錛堟瘮濡傦細http:///com/example/epo2.ecore錛夋槧灝勫埌鐗╃悊鏂囦歡鐨?/span>URIs, 鎴栬€呴噸瀹氬悜鏃х殑錛堟垨鍒悕錛夌殑URI鍙傝€冨埌涓€涓叿浣撶殑瀹為檯鐨?/span>location銆備竴涓?/span>URIConverter緇存姢涓€涓?/span>URI鍒?/span>URI鐨勬槧灝勯泦鍚堛€傛瘮濡傦紝鎶婁竴涓懡鍚嶇┖闂?/span>URI鏄犲皠鍒扮墿鐞嗘枃浠訛細

URIConverter converter = new URIConverterImpl();

URI uri1 = URI.createURI("http:///somemodel.ecore");

URI uri2 =URI.createURI("platform:/resource/project/somemodel.ecore");

converter.getURIMap().put(uri1, uri2);

鍦ㄥ涓嬮潰浠g爜錛?/span>

URI normalized = converter.normalize(uri1);

System.out.println(normalized);

鎵撳嵃鐨勭粨鏋滄槸錛?/span>platform:/resource/project/somemodel.ecore

URIConverter.normalize()鏂規(guī)硶鍙槸綆€鍗曠殑閫氳繃鏄犲皠鐨?/span>map鎶?/span>key鏇挎崲鎴愪簡鐩稿簲鐨?/span>value銆?/span>

URIConverter鐨勬渶鍘熷鏄簲鐢ㄥ湪resource sets錛岀敤鏉ュ畾浣?/span>resources.

 

5. 鍏充簬Resource鍜?/span>ResourceSet

Resource 琛ㄧず涓€涓寔涔呭寲鐨?/span>EOjbects鐨勫鍣紱ResourceSet琛ㄧず涓€緇?/span>Resource鐨勯泦鍚堬紝闆嗗悎涓殑Resource鍚屾椂鍒涘緩鎴栧姞杞姐€?/span>Resource涓瘮杈冮噸瑕佺殑灝辨槸save鍜?/span>load鏂規(guī)硶錛岃繕鏈夐€氳繃URI fragments璁塊棶璧勬簮涓殑Object鐨勬満鍒訛紝濡傦細

Resource resource =…

Item item = (Item)resource.getEObject("http://@orders.0/@items.2");

Item item =…

String fragment = resource.getURIFragment(item);

涓婇潰浠g爜涓殑涓や釜鏂規(guī)硶錛?/span>getEObject閫氳繃甯︽湁fregment鐨?/span>URI鑾峰緱涓€涓?/span>EObject錛屼笌涔嬬浉鍙嶇殑鏂規(guī)硶getURIFragment()閫氳繃EObject鑾峰緱鐩稿簲鐨?/span>fragment path銆?/span>

ResourceSet涓湁浜涢噸瑕佺殑鏂規(guī)硶錛?/span>

createResource()鍒涘緩涓€涓┖鐨?/span>Resource錛?/span>

getResource()閫氳繃resource鐨?/span>URI鏉ュ垱寤?/span>Resource錛?/span>

getEObject()錛岄€氳繃URI涓殑fregment鏉ヨ幏寰楀叿浣撶殑EObject瀵硅薄銆?/span>

 

6. 鍏充簬Resource.Factory

鐢ㄦ潵鍒涘緩Resource錛?/span>resource factory 瑕佹敞鍐屽埌Registry瀹炰緥涓€備竴涓?/span>factory 鍙互閫氳繃澶氱鏂瑰紡鐨?/span>URIs鏉ユ敞鍐岋紝鍖呮嫭URI scheme鎴栬€?/span>URI鐨?/span>extension銆傚湪鎻掍歡鏂瑰紡鐨勫簲鐢ㄤ腑錛岄€氳繃鎵╁睍鐐圭殑鏂瑰紡鍦ㄦ彃浠跺姞杞界殑鏃跺€欐敞鍐?/span>descriptor銆備笅闈㈡槸Resource鐨勬簮浠g爜

public interface Resource extends Notifier

{

interface Factory

{

Resource createResource(URI uri);

interface Descriptor

{

Factory createFactory();

}

interface Registry

{

Factory getFactory(URI uri);

Map getProtocolToFactoryMap();

String DEFAULT_EXTENSION = "*";

Map getExtensionToFactoryMap();

Registry INSTANCE = new ResourceFactoryRegistryImpl

();

}

}

}

涓嬮潰鏄?/span>Registry涓殑getFactory()鏂規(guī)硶鐨勭畻娉曪紙寮曠敤鍘熸枃錛夛細

1. Check for a factory in the protocolToFactoryMap, using

the scheme of the URI.

2. If nothing was found, check the extensionToFactoryMap

using the file extension of the URI.

3. If still nothing was found, check the

extensionToFactoryMap using the DEFAULT_EXTENSION

(that is, the wildcard character "*").

4. If no extension match was found, call the

delegatedGetFactory() method. This allows you to supply

your own factory registry, with its own lookup

criteria.

5. If a descriptor was found, instead of an actual

factory, call the createFactory() method on the

descriptor to create the factory.

6. Finally, return the factory if one was found, or null.

tip錛?/span>emf緙虹渷鐨勫簭鍒楀寲鏂瑰紡鏄?/span>XMI銆傚洜姝わ紝濡傛灉娌℃湁鎵懼埌鐩稿簲娉ㄥ唽鐨?/span>factory緙虹渷鐨勫氨浼氳繑鍥炰互*娉ㄥ唽鐨勭己鐪佺殑factory錛岃繖涓?/span>factory鏄拡瀵?/span>XMI鐨?/span>factory錛屽嵆XMIResourceFactoryImpl銆傚錛屽浜?/span>XMIResourceFactoryImpl鐨勬墿灞曠偣澹版槑:

<extension point = "org.eclipse.emf.ecore.extension_parser">

<parser type="*" class="org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl"/>

</extension>

褰撻潪鎻掍歡搴旂敤鐨勬椂鍊欙紝鍙互閫氳繃鎵嬪伐鐨勬柟寮忔潵娉ㄥ唽factory錛屽錛?/span>

Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put

("*", new XMIResourceFactoryImpl());

 

7. Resource閫氳繃涓ょ鏂瑰紡瀹炵幇XML鍜?/span>XMI銆?/span>

1) XML

瀹炵幇Resource瀛樺偍鐨勯噸瑕佹柟娉曟槸save, 鍙湁鍦ㄦ柟娉?/span>eIsSet()榪斿洖true鏃訛紝鐩稿叧鐨勫睘鎬у拰寮曠敤鎵嶄細琚簭鍒楀寲鍒?/span>xml涓€傚浜庡瓨鍌ㄧ殑xml鏂囦歡鐨勬牸寮忓彲浠ラ€氳繃璁劇疆OPTION_XML_MAP灞炴€ф潵瀹屾垚錛屽涓嬮潰鍘熸枃錛?/span>

There are several reasons why you might want to use OPTION_XML_MAP when saving a resource:

1. You want to save your data so that it conforms to a particular XML Schema.

2. You have changed your model, and you want the resource to produce XML documents that will work with the old version of the model.

3. You want to design your own XML format without changing your model.

2) XMI

XMI鍜?/span>XML鍩烘湰鐩稿悓錛?/span>XMIResourceImpl灝辨槸

XMLResourceImpl鐨勭畝鍗曠戶鎵匡紝鍙槸鍦ㄥ紩鐢?/span>objects鏃朵嬌鐢?/span>XMI IDs



]]>
鍒犻櫎榛樿鐨勫伐鍏鋒爮閫夐」http://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242655.html鐧界帀鎴?/dc:creator>鐧界帀鎴?/author>Tue, 25 Nov 2008 14:13:00 GMThttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242655.htmlhttp://www.aygfsteel.com/baiyucheng/comments/242655.htmlhttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242655.html#Feedback0http://www.aygfsteel.com/baiyucheng/comments/commentRss/242655.htmlhttp://www.aygfsteel.com/baiyucheng/services/trackbacks/242655.html 

<extension point="org.eclipse.gmf.runtime.diagram.ui.paletteProviders"> 
   
<paletteProvider class="org.eclipse.gmf.runtime.diagram.ui.providers.DefaultPaletteProvider">
     
<Priority name="High"/>
       
<contribution>
       
<predefinedEntry id="standardGroup/zoomInTool" remove="true"/>
       
<predefinedEntry
             
id="standardGroup/zoomOutTool"
             remove
="true">
       
</predefinedEntry>
       
<predefinedEntry id="standardGroup/noteStack/noteTool" remove="true"/> 
   
<predefinedEntry id="standardGroup/noteStack/textTool" remove="true"/> 
   
<predefinedEntry id="standardGroup/noteStack/noteattachmentTool" remove="true"/>
       
</contribution>
       
<editor
             
id="dbdesigner.diagram.part.DbdesignerDiagramEditorID">
       
</editor>
   
</paletteProvider>
</extension> 


]]>
涓哄浘褰㈠鍔燚ecorationhttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242651.html鐧界帀鎴?/dc:creator>鐧界帀鎴?/author>Tue, 25 Nov 2008 14:11:00 GMThttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242651.htmlhttp://www.aygfsteel.com/baiyucheng/comments/242651.htmlhttp://www.aygfsteel.com/baiyucheng/archive/2008/11/25/242651.html#Feedback0http://www.aygfsteel.com/baiyucheng/comments/commentRss/242651.htmlhttp://www.aygfsteel.com/baiyucheng/services/trackbacks/242651.htmlDecoration Service鏄?/span>GMF Runtime鎻愪緵鐨勪竴涓?/span>Service銆傚畠鐨勭洰鐨勬槸涓哄凡鏈夊浘褰㈡坊鍔犱慨楗幫紝瀹冨茍涓嶉渶瑕佸凡鏈夊浘褰㈢殑浠諱綍淇℃伅錛?/span>icon鎴?/span>figure閮藉彲浠ヤ綔涓?/span>decoration鍔犲埌鍥懼艦涓娿€傝涓哄浘褰㈡坊鍔?/span>Decoration錛岄鍏堣緙栧啓涓€涓?/span>Decorator綾匯€傚畠鍙互緇ф壙AbstractDecorator錛屼負浜嗘弧瓚寵姹傛垜浠閲嶅啓鍏朵腑涓や釜鏂規(guī)硶錛?/span>activate()銆?/span>refresh ()銆?/span>activate鏂規(guī)硶涓昏鍔熻兘鏄縺媧?/span>Decorator錛屼竴鑸彧闇€璋冪敤refresh鏂規(guī)硶鍗沖彲銆?/span>Refresh璐熻矗褰?/span>decorator target鍙樺寲鏃跺埛鏂?/span>Decorator錛屽嵆淇濇寔浜岃€呬箣闂寸殑鍚屾銆傚湪榪欓噷鎴戜滑灝卞彲浠ヨ緗嚜宸辯殑Decoration錛堝鑷畾涔夌殑icon鎴?/span>figure錛夈€傚鏋滄兂瀹炵幇Decoration鍔ㄦ€佸搷搴旀ā鍨嬬殑鏀瑰彉錛屾垜浠彲浠ヨDecorator瀹炵幇NotificationListener鎺ュ彛錛岃繖鏍鋒垜浠氨鍙互鐩戝惉妯″瀷鐨勬敼鍙樹簡銆傚疄鐜?/span>notifyChanged鏂規(guī)硶錛屽湪姝ゆ柟娉曚腑鏍規(guī)嵁闇€姹備負妯″瀷娣誨姞鐩戝惉鍣ㄣ€傚仛瀹?/span>Decorator涔嬪悗錛屾垜浠氨瑕佷負榪欎釜Decorator緙栧啓涓€涓?/span>Provider,瀹冮渶緇ф壙AbstractProvider騫跺疄鐜?/span>IDecoratorProvider鎺ュ彛銆傜劧鍚庡疄鐜?/span>createDecorators銆?/span>provides涓や釜鏂規(guī)硶銆傚湪createDecorators鏂規(guī)硶涓畨瑁呮垜浠殑Decorator銆?/span>

Provides涓垽鏂坊鍔?/span>Decorator鐨勬潯浠躲€傛渶鍚庡氨瑕佹敞鍐屾垜浠殑Provider浜嗐€傛坊鍔犳墿灞曠偣錛?/span>

org.eclipse.gmf.runtime.diagram.ui.decorator.providers錛屽皢decoration provider璁炬垚鎴戜滑鐨?/span>Provider錛岃嚦姝ゅぇ鍔熼€犳垚錛?/span>

]]>
姝e垯琛ㄨ揪寮忓熀紜€鐭ヨ瘑http://www.aygfsteel.com/baiyucheng/archive/2008/11/24/242360.html鐧界帀鎴?/dc:creator>鐧界帀鎴?/author>Mon, 24 Nov 2008 12:47:00 GMThttp://www.aygfsteel.com/baiyucheng/archive/2008/11/24/242360.htmlhttp://www.aygfsteel.com/baiyucheng/comments/242360.htmlhttp://www.aygfsteel.com/baiyucheng/archive/2008/11/24/242360.html#Feedback0http://www.aygfsteel.com/baiyucheng/comments/commentRss/242360.htmlhttp://www.aygfsteel.com/baiyucheng/services/trackbacks/242360.html
JScript VBScript 鍖歸厤
/^\[ \t]*$/ "^\[ \t]*$" 鍖歸厤涓€涓┖鐧借銆?/td>
/\d{2}-\d{5}/ "\d{2}-\d{5}" 楠岃瘉涓€涓狪D 鍙風爜鏄惁鐢變竴涓?浣嶆暟瀛楋紝涓€涓繛瀛楃浠ュ強涓€涓?浣嶆暟瀛楃粍鎴愩€?/td>
/<(.*)>.*<\/\1>/ "<(.*)>.*<\/\1>" 鍖歸厤涓€涓?HTML 鏍囪銆?/td>

涓嬭〃鏄厓瀛楃鍙婂叾鍦ㄦ鍒欒〃杈懼紡涓婁笅鏂囦腑鐨勮涓虹殑涓€涓畬鏁村垪琛細
瀛楃 鎻忚堪
\ 灝嗕笅涓€涓瓧絎︽爣璁頒負涓€涓壒孌婂瓧絎︺€佹垨涓€涓師涔夊瓧絎︺€佹垨涓€涓?鍚戝悗寮曠敤銆佹垨涓€涓叓榪涘埗杞箟絎︺€備緥濡傦紝'n' 鍖歸厤瀛楃 "n"銆?\n' 鍖歸厤涓€涓崲琛岀銆傚簭鍒?'\\' 鍖歸厤 "\" 鑰?"\(" 鍒欏尮閰?"("銆?/td>
^ 鍖歸厤杈撳叆瀛楃涓茬殑寮€濮嬩綅緗€傚鏋滆緗簡 RegExp 瀵硅薄鐨?Multiline 灞炴€э紝^ 涔熷尮閰?'\n' 鎴?'\r' 涔嬪悗鐨勪綅緗€?/td>
$ 鍖歸厤杈撳叆瀛楃涓茬殑緇撴潫浣嶇疆銆傚鏋滆緗簡RegExp 瀵硅薄鐨?Multiline 灞炴€э紝$ 涔熷尮閰?'\n' 鎴?'\r' 涔嬪墠鐨勪綅緗€?/td>
* 鍖歸厤鍓嶉潰鐨勫瓙琛ㄨ揪寮忛浂嬈℃垨澶氭銆備緥濡傦紝zo* 鑳藉尮閰?"z" 浠ュ強 "zoo"銆? 絳変環(huán)浜巤0,}銆?/td>
+ 鍖歸厤鍓嶉潰鐨勫瓙琛ㄨ揪寮忎竴嬈℃垨澶氭銆備緥濡傦紝'zo+' 鑳藉尮閰?"zo" 浠ュ強 "zoo"錛屼絾涓嶈兘鍖歸厤 "z"銆? 絳変環(huán)浜?{1,}銆?/td>
? 鍖歸厤鍓嶉潰鐨勫瓙琛ㄨ揪寮忛浂嬈℃垨涓€嬈°€備緥濡傦紝"do(es)?" 鍙互鍖歸厤 "do" 鎴?"does" 涓殑"do" 銆? 絳変環(huán)浜?{0,1}銆?/td>
{n} n 鏄竴涓潪璐熸暣鏁般€傚尮閰嶇‘瀹氱殑 n 嬈°€備緥濡傦紝'o{2}' 涓嶈兘鍖歸厤 "Bob" 涓殑 'o'錛屼絾鏄兘鍖歸厤 "food" 涓殑涓や釜 o銆?/td>
{n,} n 鏄竴涓潪璐熸暣鏁般€傝嚦灝戝尮閰?em>n 嬈°€備緥濡傦紝'o{2,}' 涓嶈兘鍖歸厤 "Bob" 涓殑 'o'錛屼絾鑳藉尮閰?"foooood" 涓殑鎵€鏈?o銆?o{1,}' 絳変環(huán)浜?'o+'銆?o{0,}' 鍒欑瓑浠蜂簬 'o*'銆?/td>
{n,m} m 鍜?n 鍧囦負闈炶礋鏁存暟錛屽叾涓?em>n <= m銆傛渶灝戝尮閰?n 嬈′笖鏈€澶氬尮閰?m 嬈°€備緥濡傦紝"o{1,3}" 灝嗗尮閰?"fooooood" 涓殑鍓嶄笁涓?o銆?o{0,1}' 絳変環(huán)浜?'o?'銆傝娉ㄦ剰鍦ㄩ€楀彿鍜屼袱涓暟涔嬮棿涓嶈兘鏈夌┖鏍箋€?/td>
? 褰撹瀛楃绱ц窡鍦ㄤ換浣曚竴涓叾浠栭檺鍒剁 (*, +, ?, {n}, {n,}, {n,m}) 鍚庨潰鏃訛紝鍖歸厤妯″紡鏄潪璐┆鐨勩€傞潪璐┆妯″紡灝藉彲鑳藉皯鐨勫尮閰嶆墍鎼滅儲鐨勫瓧絎︿覆錛岃€岄粯璁ょ殑璐┆妯″紡鍒欏敖鍙兘澶氱殑鍖歸厤鎵€鎼滅儲鐨勫瓧絎︿覆銆備緥濡傦紝瀵逛簬瀛楃涓?"oooo"錛?o+?' 灝嗗尮閰嶅崟涓?"o"錛岃€?'o+' 灝嗗尮閰嶆墍鏈?'o'銆?/td>
. 鍖歸厤闄?"\n" 涔嬪鐨勪換浣曞崟涓瓧絎︺€傝鍖歸厤鍖呮嫭 '\n' 鍦ㄥ唴鐨勪換浣曞瓧絎︼紝璇蜂嬌鐢ㄨ薄 '[.\n]' 鐨勬ā寮忋€?/td>
(pattern) 鍖歸厤 pattern 騫惰幏鍙栬繖涓€鍖歸厤銆傛墍鑾峰彇鐨勫尮閰嶅彲浠ヤ粠浜х敓鐨?Matches 闆嗗悎寰楀埌錛屽湪VBScript 涓嬌鐢?SubMatches 闆嗗悎錛屽湪JScript 涓垯浣跨敤 $0$9 灞炴€с€傝鍖歸厤鍦嗘嫭鍙峰瓧絎︼紝璇蜂嬌鐢?'\(' 鎴?'\)'銆?/td>
(?:pattern) 鍖歸厤 pattern 浣嗕笉鑾峰彇鍖歸厤緇撴灉錛屼篃灝辨槸璇磋繖鏄竴涓潪鑾峰彇鍖歸厤錛屼笉榪涜瀛樺偍渚涗互鍚庝嬌鐢ㄣ€傝繖鍦ㄤ嬌鐢?"鎴? 瀛楃 (|) 鏉ョ粍鍚堜竴涓ā寮忕殑鍚勪釜閮ㄥ垎鏄緢鏈夌敤銆備緥濡傦紝 'industr(?:y|ies) 灝辨槸涓€涓瘮 'industry|industries' 鏇寸畝鐣ョ殑琛ㄨ揪寮忋€?/td>
(?=pattern) 姝e悜棰勬煡錛屽湪浠諱綍鍖歸厤 pattern 鐨勫瓧絎︿覆寮€濮嬪鍖歸厤鏌ユ壘瀛楃涓層€傝繖鏄竴涓潪鑾峰彇鍖歸厤錛屼篃灝辨槸璇達紝璇ュ尮閰嶄笉闇€瑕佽幏鍙栦緵浠ュ悗浣跨敤銆備緥濡傦紝'Windows (?=95|98|NT|2000)' 鑳藉尮閰?"Windows 2000" 涓殑 "Windows" 錛屼絾涓嶈兘鍖歸厤 "Windows 3.1" 涓殑 "Windows"銆傞鏌ヤ笉娑堣€楀瓧絎︼紝涔熷氨鏄錛屽湪涓€涓尮閰嶅彂鐢熷悗錛屽湪鏈€鍚庝竴嬈″尮閰嶄箣鍚庣珛鍗沖紑濮嬩笅涓€嬈″尮閰嶇殑鎼滅儲錛岃€屼笉鏄粠鍖呭惈棰勬煡鐨勫瓧絎︿箣鍚庡紑濮嬨€?/td>
(?!pattern) 璐熷悜棰勬煡錛屽湪浠諱綍涓嶅尮閰?pattern 鐨勫瓧絎︿覆寮€濮嬪鍖歸厤鏌ユ壘瀛楃涓層€傝繖鏄竴涓潪鑾峰彇鍖歸厤錛屼篃灝辨槸璇達紝璇ュ尮閰嶄笉闇€瑕佽幏鍙栦緵浠ュ悗浣跨敤銆備緥濡?Windows (?!95|98|NT|2000)' 鑳藉尮閰?"Windows 3.1" 涓殑 "Windows"錛屼絾涓嶈兘鍖歸厤 "Windows 2000" 涓殑 "Windows"銆傞鏌ヤ笉娑堣€楀瓧絎︼紝涔熷氨鏄錛屽湪涓€涓尮閰嶅彂鐢熷悗錛屽湪鏈€鍚庝竴嬈″尮閰嶄箣鍚庣珛鍗沖紑濮嬩笅涓€嬈″尮閰嶇殑鎼滅儲錛岃€屼笉鏄粠鍖呭惈棰勬煡鐨勫瓧絎︿箣鍚庡紑濮?
x|y 鍖歸厤 x 鎴?y銆備緥濡傦紝'z|food' 鑳藉尮閰?"z" 鎴?"food"銆?(z|f)ood' 鍒欏尮閰?"zood" 鎴?"food"銆?/td>
[xyz] 瀛楃闆嗗悎銆傚尮閰嶆墍鍖呭惈鐨勪換鎰忎竴涓瓧絎︺€備緥濡傦紝 '[abc]' 鍙互鍖歸厤 "plain" 涓殑 'a'銆?/td>
[^xyz] 璐熷€煎瓧絎﹂泦鍚堛€傚尮閰嶆湭鍖呭惈鐨勪換鎰忓瓧絎︺€備緥濡傦紝 '[^abc]' 鍙互鍖歸厤 "plain" 涓殑'p'銆?/td>
[a-z] 瀛楃鑼冨洿銆傚尮閰嶆寚瀹氳寖鍥村唴鐨勪換鎰忓瓧絎︺€備緥濡傦紝'[a-z]' 鍙互鍖歸厤 'a' 鍒?'z' 鑼冨洿鍐呯殑浠繪剰灝忓啓瀛楁瘝瀛楃銆?/td>
[^a-z] 璐熷€煎瓧絎﹁寖鍥淬€傚尮閰嶄換浣曚笉鍦ㄦ寚瀹氳寖鍥村唴鐨勪換鎰忓瓧絎︺€備緥濡傦紝'[^a-z]' 鍙互鍖歸厤浠諱綍涓嶅湪 'a' 鍒?'z' 鑼冨洿鍐呯殑浠繪剰瀛楃銆?/td>
\b 鍖歸厤涓€涓崟璇嶈竟鐣岋紝涔熷氨鏄寚鍗曡瘝鍜岀┖鏍奸棿鐨勪綅緗€備緥濡傦紝 'er\b' 鍙互鍖歸厤"never" 涓殑 'er'錛屼絾涓嶈兘鍖歸厤 "verb" 涓殑 'er'銆?/td>
\B 鍖歸厤闈炲崟璇嶈竟鐣屻€?er\B' 鑳藉尮閰?"verb" 涓殑 'er'錛屼絾涓嶈兘鍖歸厤 "never" 涓殑 'er'銆?/td>
\cx 鍖歸厤鐢?x 鎸囨槑鐨勬帶鍒跺瓧絎︺€備緥濡傦紝 \cM 鍖歸厤涓€涓?Control-M 鎴栧洖杞︾銆?em>x 鐨勫€煎繀欏諱負 A-Z 鎴?a-z 涔嬩竴銆傚惁鍒欙紝灝?c 瑙嗕負涓€涓師涔夌殑 'c' 瀛楃銆?/td>
\d 鍖歸厤涓€涓暟瀛楀瓧絎︺€傜瓑浠蜂簬 [0-9]銆?/td>
\D 鍖歸厤涓€涓潪鏁板瓧瀛楃銆傜瓑浠蜂簬 [^0-9]銆?/td>
\f 鍖歸厤涓€涓崲欏電銆傜瓑浠蜂簬 \x0c 鍜?\cL銆?/td>
\n 鍖歸厤涓€涓崲琛岀銆傜瓑浠蜂簬 \x0a 鍜?\cJ銆?/td>
\r 鍖歸厤涓€涓洖杞︾銆傜瓑浠蜂簬 \x0d 鍜?\cM銆?/td>
\s 鍖歸厤浠諱綍絀虹櫧瀛楃錛屽寘鎷┖鏍箋€佸埗琛ㄧ銆佹崲欏電絳夌瓑銆傜瓑浠蜂簬 [ \f\n\r\t\v]銆?/td>
\S 鍖歸厤浠諱綍闈炵┖鐧藉瓧絎︺€傜瓑浠蜂簬 [^ \f\n\r\t\v]銆?/td>
\t 鍖歸厤涓€涓埗琛ㄧ銆傜瓑浠蜂簬 \x09 鍜?\cI銆?/td>
\v 鍖歸厤涓€涓瀭鐩村埗琛ㄧ銆傜瓑浠蜂簬 \x0b 鍜?\cK銆?/td>
\w 鍖歸厤鍖呮嫭涓嬪垝綰跨殑浠諱綍鍗曡瘝瀛楃銆傜瓑浠蜂簬'[A-Za-z0-9_]'銆?/td>
\W 鍖歸厤浠諱綍闈炲崟璇嶅瓧絎︺€傜瓑浠蜂簬 '[^A-Za-z0-9_]'銆?/td>
\xn 鍖歸厤 n錛屽叾涓?n 涓哄崄鍏繘鍒惰漿涔夊€箋€傚崄鍏繘鍒惰漿涔夊€煎繀欏諱負紜畾鐨勪袱涓暟瀛楅暱銆備緥濡傦紝'\x41' 鍖歸厤 "A"銆?\x041' 鍒欑瓑浠蜂簬 '\x04' & "1"銆傛鍒欒〃杈懼紡涓彲浠ヤ嬌鐢?ASCII 緙栫爜銆?
\num 鍖歸厤 num錛屽叾涓?num 鏄竴涓鏁存暟銆傚鎵€鑾峰彇鐨勫尮閰嶇殑寮曠敤銆備緥濡傦紝'(.)\1' 鍖歸厤涓や釜榪炵畫鐨勭浉鍚屽瓧絎︺€?/td>
\n 鏍囪瘑涓€涓叓榪涘埗杞箟鍊兼垨涓€涓悜鍚庡紩鐢ㄣ€傚鏋?\n 涔嬪墠鑷沖皯 n 涓幏鍙栫殑瀛愯〃杈懼紡錛屽垯 n 涓哄悜鍚庡紩鐢ㄣ€傚惁鍒欙紝濡傛灉 n 涓哄叓榪涘埗鏁板瓧 (0-7)錛屽垯 n 涓轟竴涓叓榪涘埗杞箟鍊箋€?/td>
\nm 鏍囪瘑涓€涓叓榪涘埗杞箟鍊兼垨涓€涓悜鍚庡紩鐢ㄣ€傚鏋?\nm 涔嬪墠鑷沖皯鏈?nm 涓幏寰楀瓙琛ㄨ揪寮忥紝鍒?nm 涓哄悜鍚庡紩鐢ㄣ€傚鏋?\nm 涔嬪墠鑷沖皯鏈?n 涓幏鍙栵紝鍒?n 涓轟竴涓悗璺熸枃瀛?m 鐨勫悜鍚庡紩鐢ㄣ€傚鏋滃墠闈㈢殑鏉′歡閮戒笉婊¤凍錛岃嫢 n 鍜?m 鍧囦負鍏繘鍒舵暟瀛?(0-7)錛屽垯 \nm 灝嗗尮閰嶅叓榪涘埗杞箟鍊?nm銆?/td>
\nml 濡傛灉 n 涓哄叓榪涘埗鏁板瓧 (0-3)錛屼笖 m 鍜?l 鍧囦負鍏繘鍒舵暟瀛?(0-7)錛屽垯鍖歸厤鍏繘鍒惰漿涔夊€?nml銆?/em>
\un 鍖歸厤 n錛屽叾涓?n 鏄竴涓敤鍥涗釜鍗佸叚榪涘埗鏁板瓧琛ㄧず鐨?Unicode 瀛楃銆備緥濡傦紝 \u00A9 鍖歸厤鐗堟潈絎﹀彿 (©)銆?/td>


涓嬮潰鐪嬪嚑涓緥瀛愶細
"^The"錛氳〃紺烘墍鏈変互"The"寮€濮嬬殑瀛楃涓詫紙"There"錛?The cat"絳夛級錛?
"of despair$"錛氳〃紺烘墍浠ヤ互"of despair"緇撳熬鐨勫瓧絎︿覆錛?
"^abc$"錛氳〃紺哄紑濮嬪拰緇撳熬閮芥槸"abc"鐨勫瓧絎︿覆鈥斺€斿懙鍛碉紝鍙湁"abc"鑷繁浜嗭紱
"notice"錛氳〃紺轟換浣曞寘鍚?notice"鐨勫瓧絎︿覆銆?

'*'錛?+'鍜??'榪欎笁涓鍙鳳紝琛ㄧず涓€涓垨涓€搴忓垪瀛楃閲嶅鍑虹幇鐨勬鏁般€傚畠浠垎鍒〃紺?#8220;娌℃湁鎴?
鏇村”錛?#8220;涓€嬈℃垨鏇村”榪樻湁“娌℃湁鎴栦竴嬈?#8221;銆備笅闈㈡槸鍑犱釜渚嬪瓙錛?

"ab*"錛氳〃紺轟竴涓瓧絎︿覆鏈変竴涓猘鍚庨潰璺熺潃闆朵釜鎴栬嫢騫蹭釜b銆傦紙"a", "ab", "abbb",……錛夛紱
"ab+"錛氳〃紺轟竴涓瓧絎︿覆鏈変竴涓猘鍚庨潰璺熺潃鑷沖皯涓€涓猙鎴栬€呮洿澶氾紱
"ab?"錛氳〃紺轟竴涓瓧絎︿覆鏈変竴涓猘鍚庨潰璺熺潃闆朵釜鎴栬€呬竴涓猙錛?
"a?b+$"錛氳〃紺哄湪瀛楃涓茬殑鏈熬鏈夐浂涓垨涓€涓猘璺熺潃涓€涓垨鍑犱釜b銆?

涔熷彲浠ヤ嬌鐢ㄨ寖鍥達紝鐢ㄥぇ鎷彿鎷搗錛岀敤浠ヨ〃紺洪噸澶嶆鏁扮殑鑼冨洿銆?

"ab{2}"錛氳〃紺轟竴涓瓧絎︿覆鏈変竴涓猘璺熺潃2涓猙錛?abb"錛夛紱
"ab{2,}"錛氳〃紺轟竴涓瓧絎︿覆鏈変竴涓猘璺熺潃鑷沖皯2涓猙錛?
"ab{3,5}"錛氳〃紺轟竴涓瓧絎︿覆鏈変竴涓猘璺熺潃3鍒?涓猙銆?

璇鋒敞鎰忥紝浣犲繀欏繪寚瀹氳寖鍥寸殑涓嬮檺錛堝錛?{0,2}"鑰屼笉鏄?{,2}"錛夈€傝繕鏈夛紝浣犲彲鑳芥敞鎰忓埌浜嗭紝'*'錛?+'鍜?
'?'鐩稿綋浜?{0,}"錛?{1,}"鍜?{0,1}"銆?
榪樻湁涓€涓?¦'錛岃〃紺?#8220;鎴?#8221;鎿嶄綔錛?

"hi¦hello"錛氳〃紺轟竴涓瓧絎︿覆閲屾湁"hi"鎴栬€?hello"錛?
"(b¦cd)ef"錛氳〃紺?bef"鎴?cdef"錛?
"(a¦b)*c"錛氳〃紺轟竴涓?a""b"娣峰悎鐨勫瓧絎︿覆鍚庨潰璺熶竴涓?c"錛?

'.'鍙互鏇夸唬浠諱綍瀛楃錛?

"a.[0-9]"錛氳〃紺轟竴涓瓧絎︿覆鏈変竴涓?a"鍚庨潰璺熺潃涓€涓換鎰忓瓧絎﹀拰涓€涓暟瀛楋紱
"^.{3}$"錛氳〃紺烘湁浠繪剰涓変釜瀛楃鐨勫瓧絎︿覆錛堥暱搴︿負3涓瓧絎︼級錛?

鏂規(guī)嫭鍙瘋〃紺烘煇浜涘瓧絎﹀厑璁稿湪涓€涓瓧絎︿覆涓殑鏌愪竴鐗瑰畾浣嶇疆鍑虹幇錛?

"[ab]"錛氳〃紺轟竴涓瓧絎︿覆鏈変竴涓?a"鎴?b"錛堢浉褰撲簬"a¦b"錛夛紱
"[a-d]"錛氳〃紺轟竴涓瓧絎︿覆鍖呭惈灝忓啓鐨?a'鍒?d'涓殑涓€涓紙鐩稿綋浜?a¦b¦c¦d"鎴栬€?[abcd]"錛夛紱
"^[a-zA-Z]"錛氳〃紺轟竴涓互瀛楁瘝寮€澶寸殑瀛楃涓詫紱
"[0-9]%"錛氳〃紺轟竴涓櫨鍒嗗彿鍓嶆湁涓€浣嶇殑鏁板瓧錛?
",[a-zA-Z0-9]$"錛氳〃紺轟竴涓瓧絎︿覆浠ヤ竴涓€楀彿鍚庨潰璺熺潃涓€涓瓧姣嶆垨鏁板瓧緇撴潫銆?

浣犱篃鍙互鍦ㄦ柟鎷彿閲岀敤'^'琛ㄧず涓嶅笇鏈涘嚭鐜扮殑瀛楃錛?^'搴斿湪鏂規(guī)嫭鍙烽噷鐨勭涓€浣嶃€傦紙濡傦細"%[^a-zA-Z]%"琛?
紺轟袱涓櫨鍒嗗彿涓笉搴旇鍑虹幇瀛楁瘝錛夈€?

涓轟簡閫愬瓧琛ㄨ揪錛屽繀欏誨湪"^.$()¦*+?{\"榪欎簺瀛楃鍓嶅姞涓婅漿縐誨瓧絎?\'銆?

璇鋒敞鎰忓湪鏂規(guī)嫭鍙蜂腑錛屼笉闇€瑕佽漿涔夊瓧絎︺€?/p>

]]>
主站蜘蛛池模板: 怀来县| 绥化市| 宝山区| 壶关县| 綦江县| 唐河县| 海丰县| 大安市| 古丈县| 错那县| 阿瓦提县| 凌海市| 定日县| 兴义市| 新丰县| 大埔县| 开原市| 富裕县| 盘锦市| 通州区| 洪江市| 乐陵市| 女性| 册亨县| 连云港市| 南宫市| 京山县| 读书| 汨罗市| 南汇区| 夏邑县| 神木县| 崇义县| 通山县| 皋兰县| 榆中县| 靖边县| 玉树县| 焉耆| 钟祥市| 东方市|