锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲中文字幕久久精品无码2021,亚洲国产成人久久综合一,精品亚洲成A人无码成A在线观看 http://m.tkk7.com/DLevin/category/48888.htmlIn general the OO style is to use a lot of little objects with a lot of little methods that give us a lot of plug points for overriding and variation. To do is to be -Nietzsche, To bei is to do -Kant, Do be do be do -Sinatrazh-cnSat, 05 Sep 2015 03:18:43 GMTSat, 05 Sep 2015 03:18:43 GMT60Java瀛楄妭鐮侊紙.class鏂囦歡錛夌殑浠g爜瑙f瀽http://m.tkk7.com/DLevin/archive/2011/09/13/358498.htmlDLevinDLevinMon, 12 Sep 2011 16:05:00 GMThttp://m.tkk7.com/DLevin/archive/2011/09/13/358498.htmlhttp://m.tkk7.com/DLevin/comments/358498.htmlhttp://m.tkk7.com/DLevin/archive/2011/09/13/358498.html#Feedback1http://m.tkk7.com/DLevin/comments/commentRss/358498.htmlhttp://m.tkk7.com/DLevin/services/trackbacks/358498.html

Java浜岃繘鍒舵寚浠や唬鐮佷互浠ヤ笅鏍煎紡绱у噾鎺掑垪錛?/span>opcode鍗犱竴涓瓧鑺傦級錛?/span>

opcode operand*

闄や簡tableswitch鍜?/span>lookupswitch涓ゆ潯鎸囦護涓棿瀛樺湪濉厖瀛楄妭浠ュ錛屽叾浠栨寚浠ら兘娌℃湁濉厖瀛楄妭錛屽嵆浣垮湪涓ゆ潯鎸囦護涔嬮棿涔熸病鏈夈傚洜鑰屽湪璇誨彇鎸囦護鐨勬椂鍊欙紝瑕佹牴鎹寚浠ょ殑瀹氫箟璇誨彇銆?/span> 

閫氳繃瀵逛笂闈?/span>Java鎸囦護闆嗙殑鍒嗘瀽鍙互鐭ラ亾錛?/span>Java鎸囦護闆嗕腑寰堝ぇ涓閮ㄥ垎娌℃湁鎿嶄綔鏁幫紝鍥犺屽榪欓儴鍒嗘寚浠わ紝鍙渶瑕佽鍙栦竴涓瓧鑺傜殑鎿嶄綔鐮侊紝灝嗘搷浣滅爜鏄犲皠鎴愬姪璁扮鍗沖彲銆?/span> 

鑰屽鍏朵粬甯︽搷浣滄暟鐨勬寚浠わ紝鍒欓渶瑕佹牴鎹笉鍚岀被鍨嬪垎鏋愶紙鐢變簬apache涓殑bcel錛?/span>Binary Code Engineering Library錛夊瀛楄妭鐮佺殑鏀寔錛屾搷浣滅爜鍜屽姪璁扮鐨勬槧灝勫彲浠ョ敤com.sun.org.apache.bcel.internal.Constats涓彁渚涚殑鏄犲皠琛ㄦ暟緇勬潵瀹屾垚錛夈?/span>

1.       澶勭悊涓ゆ潯鐗規畩鐨勬寚浠?/span>tableswitch鍜?/span>lookupswitch鎸囦護銆?/span>

瀵硅繖涓ゆ潯鎸囦護錛岄鍏堥兘瑕佸幓鎺夊~鍏呭瓧絎︿互浣?/span>defaultbyte1绱㈠紩鍙鋒槸瀛楀榻愮殑銆?/span>

    private static void make4ByteAlignment(ByteSequence codes) {

       int usedBytes = codes.getIndex() % 4;

       int paddingBytes = (usedBytes == 0) ? 0 : 4 - usedBytes;

       for(int i = 0;i < paddingBytes;i++) {

           codes.readByte();

       }

}

瀵?/span>tableswitch鎸囦護錛岃鍙?/span>defaultoffset鍊鹼紝鏈灝忛」鐨勫鹼紝鏈澶ч」鐨勫間互鍙婂湪鏈灝忛」鍜屾渶澶ч」涔嬮棿姣忎竴欏圭殑offset鍊箋傚茍涓斿皢璇誨彇鍒扮殑offset鍊煎拰褰撳墠鎸囦護鐨勫熀鍦板潃鐩稿姞錛?/span>

           int defaultOffset1 = baseOffset + codes.readInt();

           builder.append("\tdefault = #" + defaultOffset1);

           int low = codes.readInt();

           int high = codes.readInt();

           int npair1 = high - low + 1;

           builder.append(", npairs = " + npair1 + "\n");

           for(int i = low;i <= high;i++) {

              int match = i;

              offset = baseOffset + codes.readInt();

              builder.append(String.format("\tcase %d : #%d\n", match, offset));

        }

 

瀵?/span>lookupswitch鎸囦護錛岃鍙?/span>defaultoffset鍊鹼紝閿煎鏁板鹼紙npairs錛夛紝浠ュ強npairs瀵圭殑閿煎錛屽皢寰楀埌鐨?/span>offset鍊煎拰褰撳墠鎸囦護鐨勫熀鍦板潃鐩稿姞錛?/span>

           int defaultOffset2 = baseOffset + codes.readInt();

           builder.append("\tdefault = #" + defaultOffset2);

           int npairs2 = codes.readInt();

           builder.append(", npairs = " + npairs2 + "\n");

           for(int i = 0;i < npairs2;i++) {

              int match = codes.readInt();

              offset = baseOffset + codes.readInt();

              builder.append(String.format("\tcase %d : #%d\n", match, offset));

        }

 

2.       鎵鏈夋潯浠惰煩杞寚浠ら兘鏈変袱涓瓧鑺傜殑鍋忕Щ閲忔搷浣滄暟錛?/span>if<cond>, if_icmp<cond>, ifnull, ifnonnull, if_acmp<cond>錛夈傛棤鏉′歡璺寵漿鎸囦護goto鍜屽瓙渚嬬▼璺寵漿鎸囦護jsr涔熼兘鏄袱涓瓧鑺傜殑鍋忕Щ閲忎綔涓烘搷浣滄暟銆?/span>

offset = baseOffset + codes.readShort();

builder.append(String.format("\t\t#%d\n", offset));

 

3.       瀵瑰鍋忕Щ閲忕殑璺寵漿鎸囦護goto_w鍜屽瓙渚嬬▼璺寵漿鎸囦護jsr_w鐨勬搷浣滄暟鏄洓涓瓧鑺傜殑鍋忕Щ閲忋?/span>

offset = baseOffset + codes.readInt();

builder.append(String.format("\t\t#%d\n", offset));

 

4.       wide鎸囦護錛屽垯緇х畫璇誨彇涓嬩竴鏉℃寚浠わ紝騫跺皢wide鍙傛暟璁劇疆涓?/span>true銆?/span>

byteCodeToString(codes, pool, verbose, true);

 

5.       榪樻湁涓浜涙寚浠ゅ間互涓涓瓧鑺傜殑灞閮ㄥ彉閲忕儲寮曞彿浣滀負鎿嶄綔鏁扮殑錛屽鏋滄湁wide淇グ錛屽垯鐢ㄤ袱涓瓧鑺備綔涓烘搷浣滄暟錛屼唬琛ㄥ眬閮ㄥ彉閲忕儲寮曞彿銆傝繖鏍風殑鎸囦護鏈夛細aload, iload, fload, lload, dload, astore, istore, fstore, lstore, dstore, ret銆?/span>

if(wide) {

    index = codes.readUnsignedShort();

} else {

    index = codes.readUnsignedByte();

}

builder.append(String.format("\t\t%%%d\n", index));

6.       iinc鎸囦護錛屼互涓涓瓧鑺傜殑灞閮ㄥ彉閲忕儲寮曞彿鍜屼竴涓嚜宸辯殑甯擱噺浣滀負鍙傛暟錛涘鏋滀互wide淇グ錛屽垯璇ユ寚浠ょ殑灞閮ㄥ彉閲忕儲寮曞彿鍜屽父閲忛兘鍗犱袱涓瓧鑺傘?/span>

    if(wide) {

       index = codes.readUnsignedShort();

       constValue = codes.readShort();

    } else {

       index = codes.readUnsignedByte();

       constValue = codes.readByte();

    }

builder.append(String.format("\t\t%d %d\n", index, constValue));

 

7.       瀵硅薄鎿嶄綔鎸囦護錛屽畠浠殑鎿嶄綔鏁伴兘鏄父閲忔睜涓殑绱㈠紩錛岄暱搴︿負涓や釜瀛楄妭銆傛寚鍚?/span>CONSTANT_Class_info綾誨瀷鐨勭粨鏋勶紝榪欎簺鎸囦護鏈?/span>new, checkcast, instanceof, anewarray銆?/span>

index = codes.readUnsignedShort();

builder.append("\t\t" + pool.getClassInfo(index).toInstructionString(verbose) + "\n");

 

8.       鎵鏈夊瓧孌墊搷浣滄寚浠わ紝瀹冧滑鐨勬搷浣滄暟閮芥槸甯擱噺姹犱腑鐨勭儲寮曪紝闀垮害涓轟袱涓瓧鑺傘傛寚鍚?/span>CONSTANT_Fieldref_info綾誨瀷緇撴瀯錛岃繖浜涙寚浠ゆ湁getfield, putfield, getstatic, putstatic銆?/span>

index = codes.readUnsignedShort();

builder.append("\t\t" + pool.getFieldRefInfo(index).toInstructionString(verbose) + "\n");

 

9.       闈炴帴鍙f柟娉曡皟鐢ㄦ寚浠わ紝涔熼兘鏄互涓や釜瀛楄妭鐨勭儲寮曞彿浣滀負鎿嶄綔鏁幫紝鎸囧悜甯擱噺姹犱腑鐨?/span>CONSTANT_Methodref_info綾誨瀷緇撴瀯錛岃繖浜涙寚浠ゆ湁invokespecial, invokevirtual, invokestatic銆?/span>

index = codes.readUnsignedShort();

builder.append("\t\t" + pool.getMethodRefInfo(index).toInstructionString(verbose) + "\n");

 

10.   鎺ュ彛鏂規硶璋冪敤鎸囦護invokeinterface錛屽畠鏈夊洓涓瓧鑺傜殑鎿嶄綔鏁幫紝鍓嶄袱涓瓧鑺備負甯擱噺姹犵殑绱㈠紩鍙鳳紝鎸囧悜CONSTANT_InterfaceMethodref_info綾誨瀷錛岀涓変釜瀛楄妭涓?/span>count錛岃〃紺哄弬鏁扮殑瀛楄妭鏁幫紝鏈鍚庝竴涓瓧鑺備負0鍊箋?/span>

index = codes.readUnsignedShort();

int nargs = codes.readUnsignedByte(); //Historical, redundant

builder.append("\t\t" + pool.getInterfaceMethodRefInfo(index).toInstructionString(verbose));

builder.append(" : " + nargs + "\n");

codes.readUnsignedByte(); //reserved should be zero

 

11.   鍩烘湰綾誨瀷鐨勬暟緇勫垱寤烘寚浠?/span>newarray錛屽畠鐨勬搷浣滄暟涓轟竴涓瓧鑺傜殑綾誨瀷鏍囪瘑銆?/span>

String type = Constants.TYPE_NAMES[codes.readByte()];

builder.append(String.format("\t\t(%s)\n", type));

 

12.   澶氱淮鏁扮粍鐨勫垱寤烘寚浠?/span>multianewarray錛屽畠鏈変笁涓瓧鑺傜殑鎿嶄綔鏁幫紝鍓嶄袱涓瓧鑺備負绱㈠紩鍙鳳紝鎸囧悜CONSTANT_Class_info綾誨瀷錛岃〃紺烘暟緇勭殑綾誨瀷錛屾渶鍚庝竴涓瓧鑺傛寚瀹氭暟緇勭殑緇村害銆?/span>

index = codes.readUnsignedShort();

int dimensions = codes.readUnsignedByte();

builder.append(String.format("\t\t%s (%d)\n", pool.getClassInfo(index).getName(), dimensions));

 

13.   甯擱噺鍏ユ爤鎸囦護ldc錛屼互涓涓瓧鑺傜殑绱㈠紩鍙蜂綔涓哄弬鏁幫紝鎸囧悜CONSTANT_Integer_info銆?/span>CONSTANT_Float_info銆?/span>CONSTANT_String_info銆?/span>CONSTANT_Class_info綾誨瀷錛岃〃紺鴻鍏ユ爤鐨勫父閲忓鹼紙int綾誨瀷鍊箋?/span>float綾誨瀷鍊箋?/span>String寮曠敤綾誨瀷鍊兼垨瀵硅薄寮曠敤綾誨瀷鍊鹼級銆?/span>

index = codes.readUnsignedByte();

builder.append("\t\t" + pool.getPoolItem(index).toInstructionString(verbose) + "\n");

 

14.   瀹界儲寮曠殑甯擱噺鍏ユ爤鎸囦護ldc_w錛屼互涓や釜瀛楄妭鐨勭儲寮曞彿浣滀負鍙傛暟錛屾寚鍚?/span>CONSTANT_Integer_info銆?/span>CONSTANT_Float_info銆?/span>CONSTANT_String_info銆?/span>CONSTANT_Class_info綾誨瀷錛岃〃紺鴻鍏ユ爤鐨勫父閲忓鹼紙int綾誨瀷鍊箋?/span>float綾誨瀷鍊箋?/span>String寮曠敤綾誨瀷鍊兼垨瀵硅薄寮曠敤綾誨瀷鍊鹼級銆?/span>

index = codes.readUnsignedShort();

builder.append("\t\t" + pool.getPoolItem(index).toInstructionString(verbose) + "\n");

 

15.   瀹界儲寮曠殑甯擱噺鍏ユ爤鎸囦護ldc2_w錛屼互涓や釜瀛楄妭鐨勭儲寮曞彿浣滀負鍙傛暟錛屾寚鍚?/span>CONSTANT_Long_info銆?/span>CONSTANT_Double_info綾誨瀷錛岃〃紺鴻鍏ユ爤鐨勫父閲忓鹼紙long綾誨瀷鍊箋?/span>double綾誨瀷鍊鹼級銆?/span>

index = codes.readUnsignedShort();

builder.append("\t\t" + pool.getPoolItem(index).toInstructionString(verbose) + "\n");

 

16.   bipush鎸囦護錛屼互涓涓瓧鑺傜殑甯擱噺浣滀負鎿嶄綔鏁般?/span>

byte constByte = codes.readByte();

builder.append(“\t” + constByte);

 

17.   sipush鎸囦護錛屼互涓や釜瀛楄妭鐨勫父閲忎綔涓烘搷浣滄暟銆?/span>

short constShort = codes.readShort();

builder.append(“\t” + constShort);

 

浠ヤ笂榪樻湁涓浜涙病鏈夊畬鎴愮殑浠g爜錛屽寘鎷瓧孌碉紙鏂規硶錛夌殑絳懼悕鍜屾弿榪扮娌℃湁瑙f瀽錛屾湁涓浜涜В鏋愮殑鏍煎紡榪橀渶瑕佽皟鏁寸瓑銆備笉綆℃庝箞鏍鳳紝鎬諱綋鐨勭粨鏋勫氨鏄繖鏍蜂簡錛屽叾瀹冪殑閮芥槸緇嗚妭闂錛岃繖閲屼笉璁ㄨ浜嗐?/span> 

鍙傝bcel欏圭洰鐨?/span>org.apache.bcel.classfile.Utility綾?

2010騫?0鏈?鏃?/span>



DLevin 2011-09-13 00:05 鍙戣〃璇勮
]]>
Java浜岃繘鍒舵寚浠や唬鐮佽В鏋?/title><link>http://m.tkk7.com/DLevin/archive/2011/09/13/358497.html</link><dc:creator>DLevin</dc:creator><author>DLevin</author><pubDate>Mon, 12 Sep 2011 16:03:00 GMT</pubDate><guid>http://m.tkk7.com/DLevin/archive/2011/09/13/358497.html</guid><wfw:comment>http://m.tkk7.com/DLevin/comments/358497.html</wfw:comment><comments>http://m.tkk7.com/DLevin/archive/2011/09/13/358497.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://m.tkk7.com/DLevin/comments/commentRss/358497.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/DLevin/services/trackbacks/358497.html</trackback:ping><description><![CDATA[     鎽樿: 灝忔敞錛氬幓騫村湪鐪嬨婃繁鍏ヨВ鏋怞VM銆嬩功鐨勬椂鍊欏仛鐨勪竴浜涜褰曪紝鍚屾椂鍙傝冧簡銆奐ava铏氭嫙鏈鴻鑼冦嬨傚彧鏄鎸囦護鐨勪竴浜涘垪涓撅紝鍔犲叆浜嗕竴浜涜嚜宸辯殑鐞嗚В銆傚彲浠ョ敤鏉ユ煡璇€? Java浜岃繘鍒舵寚浠や唬鐮佽В鏋?Java婧愮爜鍦ㄨ繍琛屼箣鍓嶉兘瑕佺紪璇戞垚涓哄瓧鑺傜爜鏍煎紡錛堝.class鏂囦歡錛夛紝鐒跺悗鐢盋lassLoader灝嗗瓧鑺傜爜杞藉叆榪愯銆傚湪瀛楄妭鐮佹枃浠朵腑錛屾寚浠や唬鐮佸彧鏄叾涓殑涓閮ㄥ垎錛岄噷闈㈣繕璁板綍浜嗗瓧鑺傜爜鏂囦歡鐨勭紪璇戠増鏈佸父閲忔睜銆佽闂潈闄愩佹墍鏈夋垚鍛?..  <a href='http://m.tkk7.com/DLevin/archive/2011/09/13/358497.html'>闃呰鍏ㄦ枃</a><img src ="http://m.tkk7.com/DLevin/aggbug/358497.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/DLevin/" target="_blank">DLevin</a> 2011-09-13 00:03 <a href="http://m.tkk7.com/DLevin/archive/2011/09/13/358497.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java瀛楄妭鐮侊紙.class鏂囦歡錛夋牸寮忚瑙o紙涓夛級http://m.tkk7.com/DLevin/archive/2011/09/05/358035.htmlDLevinDLevinMon, 05 Sep 2011 15:38:00 GMThttp://m.tkk7.com/DLevin/archive/2011/09/05/358035.htmlhttp://m.tkk7.com/DLevin/comments/358035.htmlhttp://m.tkk7.com/DLevin/archive/2011/09/05/358035.html#Feedback3http://m.tkk7.com/DLevin/comments/commentRss/358035.htmlhttp://m.tkk7.com/DLevin/services/trackbacks/358035.html闃呰鍏ㄦ枃

DLevin 2011-09-05 23:38 鍙戣〃璇勮
]]>
Java瀛楄妭鐮侊紙.class鏂囦歡錛夋牸寮忚瑙o紙浜岋級http://m.tkk7.com/DLevin/archive/2011/09/05/358034.htmlDLevinDLevinMon, 05 Sep 2011 15:33:00 GMThttp://m.tkk7.com/DLevin/archive/2011/09/05/358034.htmlhttp://m.tkk7.com/DLevin/comments/358034.htmlhttp://m.tkk7.com/DLevin/archive/2011/09/05/358034.html#Feedback0http://m.tkk7.com/DLevin/comments/commentRss/358034.htmlhttp://m.tkk7.com/DLevin/services/trackbacks/358034.html闃呰鍏ㄦ枃

DLevin 2011-09-05 23:33 鍙戣〃璇勮
]]>
Java瀛楄妭鐮侊紙.class鏂囦歡錛夋牸寮忚瑙o紙涓錛?/title><link>http://m.tkk7.com/DLevin/archive/2011/09/05/358033.html</link><dc:creator>DLevin</dc:creator><author>DLevin</author><pubDate>Mon, 05 Sep 2011 15:24:00 GMT</pubDate><guid>http://m.tkk7.com/DLevin/archive/2011/09/05/358033.html</guid><wfw:comment>http://m.tkk7.com/DLevin/comments/358033.html</wfw:comment><comments>http://m.tkk7.com/DLevin/archive/2011/09/05/358033.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.tkk7.com/DLevin/comments/commentRss/358033.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/DLevin/services/trackbacks/358033.html</trackback:ping><description><![CDATA[     鎽樿: 灝忎粙錛氬幓騫村湪璇匯婃繁鍏ヨВ鏋怞VM銆嬬殑鏃跺欏啓鐨勶紝璁板緱褰撴椂榪樻兂鐫鐢ㄨ嚜宸辯殑浠g爜瑙f瀽瀛楄妭鐮佺殑錛屾渶鍚庡彧瀹屾垚浜嗕竴閮ㄥ垎銆傜幇鍦ㄩ兘涓嶇煡閬撹繕鏈夋病鏈変繚鐣欑潃錛岃矊浼糀pache鏈夌幇鎴愮殑BCEL宸ョ▼鍙互鍋氳繖浠朵簨銆傚綋鏃朵篃鍙槸涓轟簡瀛︿範銆傝繖浠借祫鏂欎富瑕佸弬鑰冦婃繁鍏ヨВ鏋怞VM銆嬪拰銆奐ava铏氭嫙鏈鴻鑼冦嬭矊浼兼槸1.2鐗堟湰鐨勶紝鏁寸悊鍑烘潵鐨勩傞噷闈㈠寘鍚簡涓浜涜嚜宸辯殑鐞嗚В鍜岀敤瀹為檯浠g爜鐨勬祴璇曘傛湁鍏磋叮鐨勭闉嬪彲浠ョ爺絀剁爺絀躲傚樋鍢褲傝鏈夐敊璇篃甯屾湜鑳戒負灝忓紵鎸囩偣鍑烘潵錛?..  <a href='http://m.tkk7.com/DLevin/archive/2011/09/05/358033.html'>闃呰鍏ㄦ枃</a><img src ="http://m.tkk7.com/DLevin/aggbug/358033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/DLevin/" target="_blank">DLevin</a> 2011-09-05 23:24 <a href="http://m.tkk7.com/DLevin/archive/2011/09/05/358033.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Java铏氭嫙鏈哄唴閮ㄤ綋緋葷粨鏋勶紙鎽樿錛屽緟瀹屽杽錛?)http://m.tkk7.com/DLevin/archive/2011/09/05/358032.htmlDLevinDLevinMon, 05 Sep 2011 15:20:00 GMThttp://m.tkk7.com/DLevin/archive/2011/09/05/358032.htmlhttp://m.tkk7.com/DLevin/comments/358032.htmlhttp://m.tkk7.com/DLevin/archive/2011/09/05/358032.html#Feedback0http://m.tkk7.com/DLevin/comments/commentRss/358032.htmlhttp://m.tkk7.com/DLevin/services/trackbacks/358032.html

Java铏氭嫙鏈轟綋鍐呴儴緋葷粨鏋勫寘鎷?/span>class鏂囦歡銆佺被瑁呰澆瀛愮郴緇熴佽繍琛屾椂鏁版嵁鍖恒佷箣琛屽紩鎿庛佹湰鍦版柟娉曡皟鐢ㄧ粨鏋勶紝鍏朵腑榪愯鏃舵暟鎹尯鍖呮嫭鏂規硶鍖恒佸爢銆?/span>Java鏍堛佺▼搴忚鏁板櫒銆佹湰鍦版柟娉曟爤絳夈傚叿浣撶粨鏋勫涓嬪浘鎵紺猴紙鎽樿嚜Inside Java Virtual Machine錛夛細


 

1.       class鏂囦歡

鍦?/span>Java涓紝鎵鏈夋簮鏂囦歡閮界紪璇戞垚浜岃繘鍒剁殑瀛楄妭鐮侊紝鐒跺悗鐢辮櫄鎷熸満瑁呰澆榪愯銆備竴鑸繖鏍風殑瀛楄妭鐮佹槸浠?/span>class鏂囦歡鐨勫艦寮忓瓨鍦ㄣ傚湪榪愯鏃訛紝鐢?/span>ClassLoader綾伙紙System ClassLoader or User-defined ClassLoader錛夋壘鍒板搴旂殑class鏂囦歡錛岃鍙栧叾涓殑瀛楄妭鐮侊紝鐒跺悗浜ょ敱铏氭嫙鏈鴻В鏋愯繍琛屻?/span>

鍦?/span>class鏂囦歡涓紝鍖呭惈浜嗗畾涔変竴涓被鎴栨帴鍙g殑鎵鏈変俊鎭紝鍖呮嫭綾誨悕銆佽闂潈闄愩佺埗綾誨悕銆佺戶鎵跨殑鎵鏈夋帴鍙c佹墍鏈夊瓧孌點佹墍鏈夋柟娉曘佹柟娉曚腑鐨勪唬鐮併佸睘鎬х瓑淇℃伅錛屽茍涓旀瘡涓?/span>class鏂囦歡鐨勫紑澶磋繕鍖呭惈浜嗛瓟鏈煎拰鐗堟湰淇℃伅錛岄瓟鏈肩敤浠ユ爣璇嗗綋鍓嶇殑瀛楄妭鐮佹槸鍚堟硶鐨勫瓧鑺傜爜錛岀増鏈〃紺虹敓鎴愬綋鍓嶅瓧鑺傜爜鐨勭紪璇戝櫒鐗堟湰錛屼粠鑰岃櫄鎷熸満鑾風煡鍏剁増鏈屽仛鐗瑰畾澶勭悊錛屽鏋滃浜庤櫄鎷熸満涓嶆敮鎸佺殑瀛楄妭鐮佺増鏈彿鎷掔粷鍔犺澆銆?/span>

鍦?/span>class鏂囦歡涓紝寰堝淇℃伅閮芥槸浠ュ瓧絎︿覆鐨勫艦寮忓瓨鏀撅紝姣斿瀵瑰閮ㄧ被鎴愬憳鎴栨柟娉曠殑寮曠敤錛岃繖浜涘瓧絎︿覆淇℃伅鍦ㄩ摼鎺ョ殑鏃跺欑敱铏氭嫙鏈鴻В鏋愩傛瘡涓?/span>Java綾伙紝涓嶇鏄寘鎴愬憳綾昏繕鏄唴閮ㄧ被閮戒細鐢熸垚涓涓崟鐙殑class鏂囦歡錛屽洜鑰?/span>class鏂囦歡鏄浉瀵圭嫭绔嬬殑銆傝緇嗕俊鎭弬鑰?/span>class鏂囦歡鏍煎紡銆?/span>

 

2.       綾昏杞藉瓙緋葷粺

綾昏杞藉瓙緋葷粺璐熻矗鏌ユ壘class鏂囦歡錛岃鍙栧瓧鑺傜爜錛屽仛閮ㄥ垎綆鍗曠殑媯楠岋紝濡傞瓟鏁版槸鍚︽紜紝鐗堟湰鏄惁鍙楁敮鎸侊紝鍚勭鏁版嵁鏍煎紡鏄惁姝g‘絳夈傞儴鍒嗚В鏋愬悗鐨勫瓧鑺傜爜鏁版嵁瀛樻斁鍒版柟娉曞尯涓紝鏈鍚庡垱寤哄瓧鑺傜爜浠h〃鐨勭被鎴栨帴鍙g殑Class瀹炰緥銆?/span>

鍦?/span>Java涓紝綾昏杞界郴緇熸槸閫氳繃ClassLoader鏉ュ畬鎴愮殑銆傝櫄鎷熸満瑙勮寖涓紝瀹氫箟浜嗗惎鍔ㄧ被瑁呰澆鍣ㄥ拰鐢ㄤ簬瀹氫箟綾昏杞藉櫒銆傚湪sun鎻愪緵鐨勮櫄鎷熸満涓紝鍖呮嫭浜嗗惎鍔ㄧ被瑁呰澆鍣ㄣ佹墿灞曠被瑁呰澆鍣ㄣ佺郴緇熺被瑁呰澆鍣ㄣ佺敤鎴峰畾涔夌被瑁呰澆鍣ㄣ備粬浠互鐖跺瓙閾劇殑鏂瑰紡緇勭粐鍦ㄤ竴璧楓傞櫎浜嗗惎鍔ㄧ被瑁呰澆鍣紝鍏朵粬鐨勮杞藉櫒閮芥槸ClassLoader鐨勫瓙綾匯?/span>ClassLoader瀹氫箟浜嗕竴浜涙柟娉曞彲浠ュ府鍔╃敤鎴峰畾涔夎嚜宸辯殑綾昏杞藉櫒錛屽defineClass絳夈傝鎯呭弬鑰?/span>Java涓殑ClassLoader銆?/span>

 

濡備綍鍗歌澆綾繪暟鎹紵錛堢涓冪珷錛?/span>

 

3.       榪愯鏃舵暟鎹尯

榪愯鏃舵暟鎹尯淇濆瓨浜嗘墍鏈夊湪榪愯鏃剁殑淇℃伅銆傚寘鎷柟娉曞尯銆?/span>Java鏍堛佸爢銆佺▼搴忓瘎瀛樺櫒銆佹湰鍦版柟娉曟爤絳夈傚叾涓柟娉曞尯鍜屽爢鍙湪铏氭嫙鏈轟腑淇濆瓨涓浠藉疄渚嬶紝鍥犺岄渶瑕佸鐞嗗綰跨▼鐨勫悓姝ラ棶棰橈紱Java鏍堛佺▼搴忓瘎瀛樺櫒鏄瘡涓嚎紼嬩腑鏈夊崟鐙殑瀹炰緥錛屽洜鑰屽涓嶅悓鐨勭嚎紼嬶紝浠栦滑鐨勬暟鎹槸縐佹湁鐨勩?/span>

 

3.1   鏂規硶鍖?/span>

鏂規硶鍖轟腑淇濆瓨浜嗚鍙栫殑瀛楄妭鐮佷俊鎭紙鍖呮嫭甯擱噺姹狅紝闈欐佹柟娉曞拰闈欐佹垚鍛樹俊鎭級銆佸瓧鑺傜爜浠h〃鐨?/span>Class綾誨疄渚嬨佷竴涓寚鍚戝姞杞藉畠鐨?/span>ClassLoader瀹炰緥銆?/span>

Java紼嬪簭鍙互鏈変袱縐嶆柟寮忔潵鑾峰彇鏌愪釜綾葷殑Class瀹炰緥錛?/span>

1.       Class.forName()鏂規硶

2.       Object.getClass()鏂規硶

閫氳繃Class瀹炰緥鑾峰彇鍜岃綾繪垨鎺ュ彛鐩稿叧鐨勪換浣曚俊鎭傚弬鑰?/span>Class綾葷殑瀹氫箟銆?/span>

錛堟敞錛氬鏈夊惎鍔?/span>ClassLoader鍔犺澆鐨勭被錛?/span>Class鏂規硶涓殑getClassLoader鏂規硶榪斿洖null錛?/span>

 

涓哄姞蹇墽琛岄熷害錛屽彲浠ュ湪鏂規硶鍖轟腑寮曞叆鏂規硶琛ㄦ満鍒訛紝璁板綍鑳借澶栫晫璋冪敤鐨勮綾葷殑瀹炰緥鏂規硶錛屽寘鎷埗綾諱腑緇ф壙涓嬫潵鐨勬柟娉曘?strong>錛堢鍏珷璇︾粏浠嬬粛錛燂級

 

鏂規硶鍖轟腑鏍規嵁綾誨悕鎼滅儲綾諱俊鎭紝綆楁硶錛氭暎鍒椼佹悳绱㈡爲絳夈?/span>

 

3.2   Java鏍?/span>

铏氭嫙鏈轟負姣忎釜綰跨▼鐢熸垚涓涓?/span>Java鏍堬紝鍥犺屽涓嶅悓鐨勭嚎紼嬶紝鏍堝唴鐨勬暟鎹兘鏄鏈夌殑銆?/span>Java鏍堢敱鏍堝撫緇勬垚錛?/span>Java鏍堢殑鎿嶄綔鍙湁涓ょ錛屽帇鍏ユ爤甯у拰寮瑰嚭鏍堝撫銆傜嚎紼嬩腑姣忎釜鏂規硶鐨勮皟鐢ㄩ兘浼氬湪Java鏍堝帇鍏ヤ竴涓爤甯э紱姣忔鏂規硶榪斿洖錛堟甯告柟娉曟垨鎶涘紓甯歌繑鍥烇級錛岃鏂規硶瀵瑰簲鐨勬爤甯ч兘浼氫粠鏍堜腑寮瑰嚭銆?/span>

 

3.2.1          鏍堝撫

鏍堝撫鐢辨搷浣滄暟鏍堛佸眬閮ㄥ彉閲忓尯鍜屾爤甯ф暟鎹粍鎴愩傜敱浜?/span>Java涓殑鎸囦護鏄熀浜庢爤鑰岃璁$殑錛屽洜鑰屽緢澶氭寚浠ょ殑榛樿鎿嶄綔鏁板氨鏄搷浣滄暟鏍堜腑鐨勬暟鎹傛搷浣滄暟鏍堢敤浜庝繚瀛樻寚浠ょ殑鎿嶄綔鏁板拰鎸囦護鎿嶄綔鍚庣殑緇撴灉銆?/span>

灞閮ㄥ彉閲忓尯鐢ㄤ簬淇濆瓨褰撳墠鏂規硶鐨勫眬閮ㄥ彉閲忋?/span>

鏍堝撫鏁版嵁鍖哄垯淇濆瓨褰撳墠鏍堝撫鐨勪俊鎭紝濡傛寚鍚戝綋鍓嶇被甯擱噺姹犵殑鎸囬拡錛岀敤浜庢搷浣滄暟涓哄父閲忔睜绱㈠紩鐨勬寚浠わ紱榪樻湁涓浜涘拰鐗瑰畾铏氭嫙鏈哄疄鐜扮浉鍏崇殑淇℃伅鍜岃皟璇曚俊鎭?/span>

 

3.3   紼嬪簭瀵勫瓨鍣?/span>

姣忎釜綰跨▼鍦ㄦ墽琛屾椂閮戒細淇濆瓨褰撳墠鎸囦護鐨勪笅涓鏉℃寚浠ょ殑鍦板潃錛屼互鎺у埗紼嬪簭鐨勪箣琛屾祦紼嬨?/span>

 

3.4   鍫?/span>

鍫嗕繚瀛樹簡紼嬪簭鍦ㄨ繍琛屾椂鐨勬墍鏈夊璞°傚湪Java涓紝鎵鏈夌殑瀵硅薄閮芥槸淇濆瓨鍦ㄥ爢涓殑錛岃屽閮ㄩ氳繃瀵硅薄鐨勫紩鐢ㄦ潵璁塊棶瀵硅薄銆傜敱浜?/span>Java瀛樺湪鍨冨溇鍥炴敹鍣紝鍥犺?/span>Java瀵硅薄鍙兘琚Щ鍔紝浠ュ噺灝戝唴瀛樼鐗囥傚叾涓竴縐嶅疄鐜板彲浠ュ緢濂界殑瑙e喅縐誨姩瀵硅薄鑰岄渶瑕佹敼鍙樻墍鏈夎瀵硅薄鐨勫紩鐢ㄥ彉閲忕殑鎶鏈紝鍗沖皢鍫嗗垎涓哄彞鏌勬睜鍜屽璞℃睜銆傚璞℃睜涓殑瀵硅薄淇濆瓨浜嗗璞$殑鐪熸鍐呭錛岃屽彞鏌勬睜涓殑欏瑰寘鍚袱涓寚閽堬紝涓涓寚鍚戝璞★紝涓涓寚鍚戠被鏁版嵁銆備竴涓璞″紩鐢ㄥ氨鏄寚鍚戝彞鏌勭殑涔嬫垬銆傝繖鏍峰綋闇瑕佺Щ鍔ㄥ璞℃椂錛屽彧瑕佹敼鍙樺彞鏌勬睜涓寚鍚戝璞$殑鎸囬拡鍊煎嵆鍙傜劧鑰岃繖縐嶈璁℃槸浠ョ壓鐗查熷害涓轟唬浠風殑錛屽洜涓鴻繖鏍鋒瘡嬈¤闂璞″氨瑕佸緇忓巻涓嬈℃寚閽堝畾浣嶃?/span>

 

鍦ㄦ煇浜涘瀮鍦懼洖鏀跺櫒瀹炵幇涓紝瀵硅薄闇瑕侀澶栫殑淇℃伅錛屽鏋滃紩鐢ㄨ鏁扮殑鍨冨溇鏀墮泦鍣紝闇瑕佷負姣忎釜瀵硅薄璁板綍寮曠敤璁℃暟淇℃伅錛涜屽鍙﹀鏈変簺鏈哄埗錛屽垯鍙兘闇瑕佹殏鏃朵繚瀛樻煇浜涙暟鎹傝繖浜涢澶栫殑鏁版嵁鍙互淇濆瓨鍦ㄧ被涓紝涔熷彲浠ュ湪璁板綍鍦ㄥ叾浠栧湴鏂廣傜被浼肩殑榪樻湁鍚屾鏈哄埗涓殑鏁版嵁鍜岃褰曟槸鍚﹀凡緇忚皟鐢ㄨ繃finalize鏂規硶鐨勪俊鎭?/span>

 

鍦?/span>Java涓湁鎸囦護鐢ㄤ簬鍦ㄥ唴瀛樹腑鍒嗛厤瀵硅薄錛屽嵈娌℃湁鏄懼紡鐨勬寚浠ゆ潵閲婃斁鍐呭瓨涓殑瀵硅薄銆?/span>

 

3.5   鏈湴鏂規硶鏍?/span>

褰?/span>Java鏂規硶璋冪敤鏈湴鏂規硶鐨勬椂鍊欙紝褰撳墠綰跨▼鐨勭▼搴忓瘎瀛樺櫒鏄笉紜畾鐨勫箋傜▼搴忕殑鎵ц涔熻漿鍚戞湰鍦版柟娉曘傛湰鍦版柟娉曞彲浠ユ甯歌繑鍥烇紝涔熷彲浠ユ姏鍑哄紓甯搞傛姏鍑虹殑寮傚父浼氬湪璋冪敤璇ユ湰鍦版柟娉曠殑鎸囦護涓噸鏂版姏鍑恒?/span>

 

4.       鎵ц寮曟搸

姣忎釜鐢ㄦ埛綰跨▼錛堝嵆涓嶅寘鎷瀮鍦懼洖鏀剁嚎紼嬬瓑錛夐兘鏈変竴涓墽琛屽紩鎿庡疄渚嬶紝鐢ㄤ互鎵ц瀛楄妭鐮佹寚浠ゃ?/span>

 

5.       鏈湴鏂規硶鎺ュ彛

Java紼嬪簭鍙互閫氳繃鏈湴鏂規硶鎺ュ彛鏉ヨ皟鐢ㄦ湰鍦版柟娉曘?br />
                                                                                                                浜?010-10-06



DLevin 2011-09-05 23:20 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 免费精品国偷自产在线在线| 日本免费人成网ww555在线| 一二三四影视在线看片免费| 亚洲AV日韩AV永久无码下载| 国内精品免费在线观看| 亚洲成AV人片在线观看无码| 久久精品免费电影| 亚洲精品欧洲精品| 日韩免费a级毛片无码a∨| 亚洲香蕉在线观看| 成人免费视频国产| 全部一级一级毛片免费看| 在线观看亚洲精品国产| 免费黄色电影在线观看| 亚洲av永久综合在线观看尤物| 久久不见久久见中文字幕免费 | 国产日韩亚洲大尺度高清| APP在线免费观看视频| 亚洲黄色免费网址| 毛片基地免费观看| 91亚洲精品视频| 日韩黄色免费观看| 亚洲字幕AV一区二区三区四区| 亚洲最大成人网色香蕉| 亚洲情XO亚洲色XO无码| 毛片免费在线观看网站| 国产免费黄色无码视频| 中文字幕亚洲综合久久| 一本色道久久88综合亚洲精品高清| 国产黄色片免费看| 色综合久久精品亚洲国产| 亚洲国产成AV人天堂无码| 亚洲高清在线观看| 中文字幕亚洲不卡在线亚瑟| 亚洲中文字幕丝袜制服一区| 自拍偷自拍亚洲精品情侣| 精品国产亚洲男女在线线电影| 永久免费AV无码网站国产| 精品特级一级毛片免费观看| 亚洲AV综合色区无码二区爱AV| 亚洲精品自产拍在线观看|