锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 褰撴鏋跺拰鐩戝惉鍣ㄤ笉鍐欏湪鍚屼竴涓被鐨勬椂鍊欙紝浼氬嚭鐜板湪鐩戝惉鍣ㄧ被涓毦浠ヨ闂鏋剁被涓璼wing緇勪歡銆傜洰鍓嶆垜璁や負鏄笉鍚岀殑瀹炰緥鍖栧璞$殑緇勪歡涔熶笉鍚岋紝鎵浠ヨ鍦ㄧ洃鍚櫒綾諱腑璁塊棶妗嗘灦綾諱腑鐨勭粍浠訛紝鍙敤浠ヤ笅涓ょ鏂規硶錛?/p>
1錛氬埄鐢ㄧ粍浠剁殑鐨剆etActionCommand鍜岀洃鍚櫒綾諱腑鐨刧etActionCommand鏂規硶鏉ヤ嬌妗嗘灦涓殑緇勪歡鍦ㄧ洃鍚櫒綾諱腑寰椾互璇嗗埆銆備絾榪欑鏂規硶鏈夊眬闄愭с?/p>
2錛氬埄鐢ㄧ洃鍚櫒綾諱腑涓涓瀯閫犳柟娉曚紶閫掓鏋剁被銆?/p>
public MyActionListener(JFrame jframe){ 榪欐牱錛屽湪鐩戝惉鍣ㄧ被涓彲浠ュ儚涓鑸彉閲忛偅鏍瘋皟鐢ㄧ粍浠躲?/p>
java.awt.Graphics鏄粯鍒跺浘褰㈢殑閲嶈綾匯傚畠鎻愪緵鏈搴曞眰鐨勭嚎錛屽渾鍜岀煩褰㈢瓑鐨勭粯鍒躲傜粯鍒跺浘褰㈠拰濉厖鍥懼艦鍦ㄥ潗鏍囧拰鍍忕礌鐨勮緗笂鏄湁涓緢灝忕殑鍖哄埆銆傜粯鍒舵椂錛屽疄闄呮墍寰楃殑鍍忕礌瑕佹瘮鍧愭爣浠庡彸杈瑰拰涓嬭竟澶氬嚭涓琛岋紝鎵浠ヨ緗椂鍧愭爣搴旇鏄繖鏍鳳細g.drawRect(0,0,size.width-1,size.height-1);濉厖鏃訛紝鍙湪鎵緇樺埗鐨勫潗鏍囧唸錛屾墍浠ョ洿璇戞椂搴旇鏄繖鏍鳳細g.fillRect(0,0,size.width,size.height)銆傝繖鏍風粯鍒跺拰濉厖濂界殑鍥懼艦鎵嶅銆傝櫧鐒剁幇鍦ㄨ繕鐢ㄤ笉鐫榪欎簺鎶鏈紝浣嗘槸瀵逛簬鏇存繁鍒葷殑浜嗚ВAWT鍜孲wing鎻愪緵浜嗗熀紜銆?/p>
this.jFrame=jframe;
}
鍦↗ava涓紝鎴戜滑姣旇緝涓や釜瀵硅薄鏃舵湁涓ょ鏂規硶錛屼竴縐嶆槸鐩存帴浣跨敤閫昏緫榪愮畻絎?=鍙鳳紝榪樻湁涓縐嶅氨鏄敤equlas()鍑芥暟錛岃鍑芥暟鍦∣bject涓氨瀹氫箟浜嗭紝鎵浠ユ瘡涓被閮戒細鏈夎繖涓嚱鏁幫紝濂戒簡鐜板湪鎴戜滑鐪嬬湅鏅氬璞″拰瀛楃涓插湪浣跨敤榪欎袱縐嶆瘮杈冩柟寮忔湁浠涔堜笉鍚岋紝鐪嬩笅闈唬鐮侊紝璇昏呭彲浠ョ寽鐚滅湅緇撴灉鏄粈涔堬細
public class Equals {
/**
* @param args
*/
public static void main(String[] args) {
Object o1 = new Object();
Object o2 = new Object();
Object o3 = o1;
Object o4 = o2;
System.out.println( "o1.equals( o1 ): " + o1.equals( o1 ) );
System.out.println( "o1.equals( o2 ): " + o1.equals( o2 ) );
System.out.println( "o1.equals( o3 ): " + o1.equals( o3 ) );
System.out.println( "o1.equals( o4 )" + o1.equals( o4 ) );
System.out.println();
System.out.println( "o1 == o1: " + ( o1 == o1 ) );
System.out.println( "o1 == o2: " + ( o1 == o2 ) );
System.out.println( "o1 == o3: " + ( o1 == o3 ) );
System.out.println( "o1 == o4: " + ( o1 == o4 ) );
System.out.println();
String s1 = new String( "abc" );
String s2 = new String( "abc" );
String s3 = new String( "def" );
String s4 = s1;
String s5 = s2;
String s6 = s3;
System.out.println( "s1.equals( s1 ): " + s1.equals( s1 ) );
System.out.println( "s1.equals( s2 ): " + s1.equals( s2 ) );
System.out.println( "s1.equals( s3 ): " + s1.equals( s3 ) );
System.out.println( "s1.equals( s4 ): " + s1.equals( s4 ) );
System.out.println( "s1.equals( s5 ): " + s1.equals( s5 ) );
System.out.println( "s1.equals( s6 ): " + s1.equals( s6 ) );
System.out.println();
System.out.println( "s1 == s1: " + ( s1 == s1 ) );
System.out.println( "s1 == s2: " + ( s1 == s2 ) );
System.out.println( "s1 == s3: " + ( s1 == s3 ) );
System.out.println( "s1 == s4: " + ( s1 == s4 ) );
System.out.println( "s1 == s5: " + ( s1 == s5 ) );
System.out.println( "s1 == s6: " + ( s1 == s6 ) );
}
}
鏈夋病鏈夌瓟妗堜簡錛屽鏋滄湁浜嗭紝鐪嬬湅浣犵殑絳旀姝g‘鍚楋紝
o1.equals( o1 ): true
o1.equals( o2 ): false
o1.equals( o3 ): true
o1.equals( o4 )false
o1 == o1: true
o1 == o2: false
o1 == o3: true
o1 == o4: false
s1.equals( s1 ): true
s1.equals( s2 ): true
s1.equals( s3 ): false
s1.equals( s4 ): true
s1.equals( s5 ): true
s1.equals( s6 ): false
s1 == s1: true
s1 == s2: false
s1 == s3: false
s1 == s4: true
s1 == s5: false
s1 == s6: false
涓轟粈涔堜細鍑虹幇涓婇潰鐨勭粨鏋滃憿錛屽叾瀹炲湪Java涓紝閫昏緫榪愮畻絎?=鍙峰湪姣旇緝瀵硅薄鐨勬椂鍊欐槸涓ユ牸鐨勬瘮杈冭繖涓や釜瀵硅薄鏄笉鏄悓涓涓璞★紝璇寸櫧浜嗭紝瀹冩瘮杈冪殑鏄袱涓璞″湪鍐呭瓨涓殑鍦板潃錛屽彧鏈夊綋涓や釜鍙橀噺鎸囧悜鍚屼竴涓唴瀛樺湴鍧鍗沖悓涓涓璞℃椂鎵嶈繑鍥瀟rue錛屽惁鍒欒繑鍥瀎alse錛屾墍浠ュ氨鍙互鐪嬪埌褰撴垜浠敤new鏂規硶鍒涘緩浜唎1鍜宱2鐢變簬鍒嗛厤浜嗕袱涓笉鍚岀殑鍐呭瓨絀洪棿錛屾墍浠ュ畠浠湪鐢ㄩ昏緫榪愮畻絎?=鍙鋒潵鍒ゆ柇涓や釜瀵硅薄鏄惁鐩哥瓑鏃惰嚜鐒跺簲璇ヨ繑鍥炵殑鏄痜alse錛岃屽湪姣旇緝o1鍜宱3鏃訛紝鐢變簬o3鎸囧悜鐨勫疄闄呮槸o1鎵鎸囧悜鐨勫湴鍧錛屾墍浠ヨ繑鍥瀟rue錛屽湪瀛楃涓蹭腑閫昏緫榪愮畻絎?=鐨勪綔鐢ㄥ拰鏅氬璞℃槸涓鏍風殑銆?br />
閭d箞瀵逛簬o1鍜宱2鐢╡quals()鏂規硶姣旇緝榪斿洖鐨勪負浠涔堜篃鏄痜alse鍛紝鎴戜滑鏉ョ湅涓孌典唬鐮侊細
public boolean equals( Object o2 )
{
this == o2;
}
榪欐槸Object涓璭quals()鍑芥暟鐨勫疄鐜幫紝鍙互鐪嬪埌瀹為檯涓婂畠鐨勫姛鑳借繕鏄瘮杈冧袱涓璞$殑鍦板潃錛岃嚜鐒朵綘鐜板湪鍙互鎺ㄥ嚭涓轟粈涔坥1鍜宱2姣旇緝鏃惰繕鏄繑鍥瀎alse浜嗐?br />
閭g幇鍦ㄩ棶棰樺彲鑳芥潵浜嗭紝閭d負浠涔坰1鍜宻2姣旇緝鏃惰繑鍥炵殑鏄痶rue鍛紝浠栦滑鍦ㄥ唴瀛樼┖闂寸殑鍦板潃鍙槸涓嶄竴鏍風殑鍟婏紝鍛靛懙錛屽叾瀹炶繖涓悊瑙h搗鏉ユ洿綆鍗曚簡錛屽洜涓哄湪String綾諱腑閲嶈澆浜唀quals()鍑芥暟錛屼嬌瀹冩瘮杈冪殑鏄袱涓瓧絎︿覆鐨勫唴瀹癸紝鑰屼笉鏄袱涓瓧絎︿覆瀵硅薄鍦ㄥ唴瀛樹腑鐨勫湴鍧錛岃嚦浜庡浣曞啓榪欎釜鍑芥暟鎴戝氨涓嶅璇翠簡錛屽ぇ瀹跺彲浠ヨ嚜宸卞啓鍐欑湅錛屽疄鐜版柟寮忔湁澶氱錛屼笉榪嘢un鍏徃褰撶劧鍙湁閭d竴縐嶅疄鐜版柟寮忥紝鍝堝搱
浠婂ぉ杞歡緇堜簬鍋氬嚭鏉ヤ簡錛岀敤JAR鎵撳寘錛屾墦浜嗗崄鍑犳閮芥病鎵撴垚鍔熴傚湪緗戜笂鎵句簡
涓涓閽熷ご鎵嶆壘鍒頒簡闂鐨勬墍鍦紝绔熺劧鏄竴涓洖杞︼紝浠ヤ笅鏄疢ANIFEST.MF鏂囦歡鐨勫唴
瀹癸細
Manifest-Version: 1.0
Created-By: 1.5.0_06 (Sun Microsystems Inc.)
Main-Class: StuLogon
鍦ㄥ惈鏈塎ain鏂規硶鐨勭被StuLogon鍚庤竟涓瀹氳鍔犱笂鍥炶濺錛岃鍏夋爣鍒頒笅涓琛屻傚氨榪欎箞涓?/p>
闂嫻垂浜嗘垜涓涓挓澶存椂闂淬?/p>
鏍囧噯杈撳叆杈撳嚭
浠庨敭鐩樿緭鍏ワ紙璇伙級鍒板唴瀛橈紝鍐嶄粠鍐呭瓨杈撳嚭錛堝啓錛夊埌鏄劇ず鍣?/p>
鏂囦歡杈撳叆杈撳嚭
浠庝漢杈撳嚭錛堝啓錛夊埌鏂囦歡錛屽啀浠庢枃浠惰緭鍏ワ紙璇伙級鍒板唴瀛橈紝鍐嶄粠鍐呭瓨杈撳嚭錛堝啓錛夊埌鏄?/p>
紺哄櫒銆
綆鍗曠殑璇碕DK鏄潰鍚戝紑鍙戜漢鍛樹嬌鐢ㄧ殑SDK錛屽畠鎻愪緵浜咼ava鐨勫紑鍙戠幆澧冨拰榪愯鐜銆係DK鏄疭oftware Development Kit 涓鑸寚杞歡寮鍙戝寘錛屽彲浠ュ寘鎷嚱鏁板簱銆佺紪璇戠▼搴忕瓑銆?br />
JDK灝辨槸Java Development Kit
JRE鏄疛ava Runtime Enviroment鏄寚Java鐨勮繍琛岀幆澧冿紝鏄潰鍚慗ava紼嬪簭鐨勪嬌鐢ㄨ咃紝鑰屼笉鏄紑鍙戣呫?/p>
濡傛灉瀹夎浜咼DK錛屼細鍙戝悓浣犵殑鐢佃剳鏈変袱濂桱RE錛屼竴濂椾綅浜?/jre 鍙﹀涓濂椾綅浜?C:/Program Files/Java/j2re1.4.1_01 鐩綍涓嬶紝鍚庨潰榪欏姣斿墠闈㈤偅濂楀皯浜哠erver绔殑Java铏氭嫙鏈猴紝涓嶈繃鐩存帴灝嗗墠闈㈤偅濂楃殑Server绔疛ava铏氭嫙鏈哄鍒惰繃鏉ュ氨琛屼簡銆傝屼笖鍦ㄥ畨瑁匤DK鍙互閫夋嫨鏄惁瀹夎榪欎釜浣嶄簬 C:/Program Files/Jav a 鐩綍涓嬬殑JRE銆傚鏋滀綘鍙畨瑁匤RE錛岃屼笉鏄疛DK錛岄偅涔堝彧浼氬湪 C:/Program Files/Java 鐩綍涓嬪畨瑁呭敮涓鐨勪竴濂桱RE銆?
JRE鐨勫湴浣嶅氨璞′竴鍙癙C鏈轟竴鏍鳳紝鎴戜滑鍐欏ソ鐨刉in32搴旂敤紼嬪簭闇瑕佹搷浣滅郴緇熷府鎴戜滑榪愯錛屽悓鏍風殑錛屾垜浠紪鍐欑殑Java紼嬪簭涔熷繀欏昏JRE鎵嶈兘榪愯銆傛墍浠ュ綋浣犺瀹孞DK鍚庯紝濡傛灉鍒嗗埆鍦ㄧ‖鐩樹笂鐨勪袱涓笉鍚屽湴鏂瑰畨瑁呬簡涓ゅJRE錛岄偅涔堜綘鍙互鎯寵薄浣犵殑鐢佃剳鏈変袱鍙拌櫄鎷熺殑Java PC鏈猴紝閮藉叿鏈夎繍琛孞ava紼嬪簭鐨勫姛鑳姐傛墍浠ユ垜浠彲浠ヨ錛屽彧瑕佷綘鐨勭數鑴戝畨瑁呬簡JRE錛屽氨鍙互姝g‘榪愯Jav a搴旂敤紼嬪簭銆?/p>
1銆佷負浠涔圫un瑕佽JDK瀹夎涓ゅ鐩稿悓鐨凧RE錛熻繖鏄洜涓篔DK閲岄潰鏈夊緢澶氱敤Java鎵緙栧啓鐨勫紑鍙戝伐鍏鳳紙濡俲avac.exe銆乯ar.exe絳夛級錛岃屼笖閮芥斁緗湪 /lib/tools.jar 閲屻備粠涓嬮潰渚嬪瓙鍙互鐪嬪嚭錛屽厛灝唗ools.jar鏀瑰悕涓簍ools1.jar錛岀劧鍚庤繍琛宩avac.exe錛屾樉紺哄涓嬬粨鏋滐細 Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac /Main 榪欎釜鎰忔濇槸璇達紝浣犺緭鍏avac.exe涓庤緭鍏?java -cp c:/jdk/lib/tools.jar com.sun.tools.javac.Main 鏄竴鏍風殑錛屼細寰楀埌鐩稿悓鐨勭粨鏋溿備粠榪欓噷鎴戜滑鍙互璇佹槑javac.exe鍙槸涓涓寘瑁呭櫒錛圵rapper錛夛紝鑰屽埗浣滅殑鐩殑鏄負浜嗚寮鍙戣呭厤浜庤緭鍏ュお闀跨殑鎸囧懡銆傝屼笖鍙互鍙戠幇/lib鐩綍涓嬬殑紼嬪簭閮藉緢灝忥紝涓嶅ぇ浜? 9K錛屼粠榪欓噷鎴戜滑鍙互寰楀嚭涓涓粨璁恒傚氨鏄疛DK閲岀殑宸ュ叿鍑犱箮鏄敤Java鎵緙栧啓錛屾墍浠ヤ篃鏄疛ava搴旂敤紼嬪簭錛屽洜姝よ浣跨敤JDK鎵闄勭殑宸ュ叿鏉ュ紑鍙慗ava紼嬪簭錛屼篃蹇呴』瑕佽嚜琛岄檮涓濂桱RE鎵嶈錛屾墍浠ヤ綅浜嶤:/Program Files/Java鐩綍涓嬬殑閭eJRE灝辨槸鐢ㄦ潵榪愯涓鑸琂ava紼嬪簭鐢ㄧ殑銆?
2銆佸鏋滀竴鍙扮數鑴戝畨瑁呬袱濂椾互涓婄殑JRE錛岃皝鏉ュ喅瀹氬憿錛熻繖涓噸澶т換鍔″氨钀藉湪java.exe韜笂銆侸ava.exe鐨勫伐浣滃氨鏄壘鍒板悎閫傜殑JRE鏉ヨ繍琛孞ava紼嬪簭銆?Java.exe渚濈収搴曚笅鐨勯『搴忔潵鏌ユ壘JRE錛氳嚜宸辯殑鐩綍涓嬫湁娌℃湁JRE錛涚埗鐩綍鏈夋病鏈塉RE錛涙煡璇㈡敞鍐岃〃錛?[HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Runtime Environment] 鎵浠ava.exe鐨勮繍琛岀粨鏋滀笌浣犵殑鐢佃剳閲岄潰鍝釜JRE琚墽琛屾湁寰堝ぇ鐨勫叧緋匯?
3銆佷粙緇岼VM JRE鐩綍涓嬬殑Bin鐩綍鏈変袱涓洰褰曪細server涓巆lient銆傝繖灝辨槸鐪熸鐨刯vm.dll鎵鍦ㄣ?jvm.dll鏃犳硶鍗曠嫭宸ヤ綔錛屽綋jvm.dll鍚姩鍚庯紝浼氫嬌鐢╡xplicit鐨勬柟娉曪紙灝辨槸浣跨敤Win32 API涔嬩腑鐨凩oadLibrary()涓嶨etProcAddress()鏉ヨ澆鍏ヨ緟鍔╃敤鐨勫姩鎬侀摼鎺ュ簱錛夛紝鑰岃繖浜涜緟鍔╃敤鐨勫姩鎬侀摼鎺ュ簱錛?dll錛夐兘蹇呴』浣嶄簬jvm.dll鎵鍦ㄧ洰褰曠殑鐖剁洰褰曚箣涓傚洜姝ゆ兂浣跨敤鍝釜JVM錛屽彧闇瑕佽緗甈ATH錛屾寚鍚慗RE鎵鍦ㄧ洰褰曞簳涓嬬殑jvm.dll銆?/p>