锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
forName鏄彇寰桟lass寮曠敤鐨勪竴縐嶆柟娉曪紝榪斿洖涓涓狢lass瀵硅薄鐨勫紩鐢ㄣ?/p>
濡傛灉Gum綾昏繕娌℃湁琚姞杞藉氨鍔犺澆瀹冿紝鍦ㄥ姞杞借繃紼嬩腑錛孏um鐨勯潤鎬佸瓙鍙ヨ鎵ц銆?/p>
鍙兘浜х敓鐨勫紓甯革細ClassNotFoundException
Class.getInterfaces("Gum")
榪斿洖瀵硅薄鏄疌lass綾誨瀷錛岃〃紺虹被Gum鍖呭惈鐨勬帴鍙?/p>
濡傜被Gum implements interface1,
鍒欎細鑾峰彇鍒癷nterface1鐨勭被瀵硅薄
Class.newInstance()
瀹炵幇“铏氭嫙鏋勯犲櫒”鐨勪竴縐嶉斿緞
綾誨瓧闈㈠父閲?/strong>
obj.Class鐢熸垚瀵笴lass瀵硅薄鐨勫紩鐢紝瀹冩瘮forName鏇村姞瀹夊叏錛屽洜涓哄畠鍦ㄧ紪璇戞椂灝辨帴鍙楁鏌ャ?/p>
娉ㄦ剰:褰撲嬌鐢?Class鏉ュ垱寤篊lass瀵硅薄鐨勫紩鐢ㄦ椂錛屼笉浼氳嚜鍔ㄥ垵濮嬪寲Class瀵硅薄銆?/p>
杈撳嚭緇撴灉涓猴細
Initialzing Initable
After creating Initable ref
47
258
Initialzing Initable2
147
Initialzing Initable3
After creating Initable3 ref
74
緇撹錛?/strong>濡傛灉涓涓猻tatic final鍊兼槸"緙栬瘧鏈熷父閲?錛屽氨璞nitable.staticFinal閭f牱錛岄偅涔堣繖涓間笉闇瑕佸Initable綾誨垵浣垮寲灝卞彲浠ヨ鍙栵紝浣嗘槸濡傛灉鍙槸灝嗕竴涓煙璁劇疆涓簊tatic鍜宖inal鐨勶紝濡傚Initable.staticFinal2鐨勮闂皢榪涜寮哄埗鐨勫垵浣垮寲錛屽洜涓哄畠涓嶆槸涓涓紪璇戝瀷甯擱噺銆?/p>
濡傛灉涓涓猻tatic鑰屼笉鏄痜inal鐨勶紝閭d箞鍦ㄥ畠璁塊棶鏃訛紝鎬繪槸瑕佹眰榪涜閾炬帴錛堜負榪欎釜鍩熷垎閰嶅瓨鍌ㄧ┖闂達級鍜屽垵濮嬪寲錛堝垵濮嬪寲璇ュ瓨鍌ㄧ┖闂達級錛屽氨鍍忓Initable2.staticNonFinal閭f牱銆?/p>
娉涘寲鐨凜lass寮曠敤 Class<Integer> iniClass=int.class 鏂扮殑杞瀷璇硶 case() InstanceOf 鍙嶅皠 getMethods()榪斿洖Method瀵硅薄鐨勬暟緇?/p>
getConstructors()榪斿洖Contructor瀵硅薄鐨勬暟緇?/p>
鍔ㄦ佷唬鐞?/strong> 瀹炵幇InvocationHandler鎺ュ彛 public Object invoke(Objct proxy,Method method,Object[] args)throws Throwable锝涳綕鏂規硶 閫氳繃Proxy.newProxyInstance(ClassLoader,Class[],InvocationHandler)鍒涘緩鍔ㄦ佷唬鐞?/p>
鍏蜂綋紺轟緥鍙傝: http://www.tkk7.com/aoneany/articles/271019.html Scanner鎵弿瀛楃涓插璞°?/p>
澶囨敞錛?/p>
鍦╦ava緙栬瘧濂界殑class鏂囦歡涓?鏈変釜鍖哄煙縐頒負Constant Pool,浠栨槸涓涓敱鏁扮粍緇勬垚鐨勮〃,綾誨瀷 闈㈣瘯棰? String s1 = new String("s1") ; @Target(ElementType.TYPE)錛堝彲閫夛級 @ClassInfo (
]]>
涓篶p_info constant_pool[],鐢ㄦ潵瀛樺偍紼嬪簭涓嬌鐢ㄧ殑鍚勭甯擱噺,鍖呮嫭Class/String/Integer絳夊悇
縐嶅熀鏈琂ava鏁版嵁綾誨瀷,璇︽儏鍙傝The Java Virtual Machine Specification 4.4绔犺妭.
瀵逛簬Constant Pool,琛ㄧ殑鍩烘湰閫氱敤緇撴瀯涓?
cp_info {
u1 tag;
u1 info[];
}
tag鏄竴涓暟瀛?鐢ㄦ潵琛ㄧず瀛樺偍鐨勫父閲忕殑綾誨瀷,渚嬪8琛ㄧずString綾誨瀷,5琛ㄧずLong綾誨瀷,info[]鏍規嵁
綾誨瀷鐮乼ag鐨勪笉鍚屼細鍙戠敓鐩稿簲鍙樺寲.
瀵逛簬String綾誨瀷,琛ㄧ殑緇撴瀯涓?
CONSTANT_String_info {
u1 tag;
u2 string_index;
}
tag鍥哄畾涓?,string_index鏄瓧絎︿覆鍐呭淇℃伅,綾誨瀷涓?
CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}
tag鍥哄畾涓?,length涓哄瓧絎︿覆鐨勯暱搴?bytes[length]涓哄瓧絎︿覆鐨勫唴瀹?
浠g爜鏍蜂緥
(浠ヤ笅浠g爜鍦╦dk6涓紪璇?
涓轟簡璇︾粏鐞嗚ВConstant Pool鐨勭粨鏋?鎴戜滑鍙傜湅涓浜涗唬鐮?
String s1 = "sss111";
String s2 = "sss222";
System.out.println(s1 + " " + s2);
鐢變簬"sss111"鍜?/span>"sss222"閮芥槸瀛楃涓插父閲?鍦ㄧ紪璇戞湡灝卞凡緇忓垱寤哄ソ浜嗗瓨鍌ㄥ湪class鏂囦歡涓?
鍦ㄧ紪璇戝悗鐨刢lass鏂囦歡涓細瀛樺湪榪?涓父閲忕殑瀵瑰簲琛ㄧず:
08 00 11 01 00 06 73 73 73 31 31 31 08 00 13 01 ; ......sss111....
00 06 73 73 73 32 32 32 ; ..sss222
鏍規嵁涓婇潰璇寸殑String甯擱噺緇撴瀯,鎴戜滑鍒嗘瀽涓涓?br />
寮濮嬬殑08涓篊ONSTANT_String_info緇撴瀯涓殑tag,鑰?1搴旇鏄畠鐨勭浉瀵瑰紩鐢?01涓?br />
CONSTANT_Utf8_info鐨則ag,06涓哄搴斿瓧絎︿覆鐨勯暱搴?73 73 73 31 31 31涓哄瓧絎︿覆瀵?br />
搴旂殑緙栫爜,鎺ョ潃鍒嗘瀽,浼氬彂鐜板悗闈㈢殑鏄搴?/span>"sss222"鐨勫瓨鍌ㄧ粨鏋?
緇忚繃涓婇潰鍒嗘瀽,鎴戜滑鐭ラ亾浜?1鍜?3鏄袱涓瓧絎︿覆鐨勭浉瀵瑰紩鐢?灝卞彲浠ヤ慨鏀筩lass鏂囦歡
鏉ヤ慨鏀規墦鍗扮殑鍐呭,鎶奵lass鏂囦歡涓殑
00 6E 00 04 00 03 00 00 00 24 12 10 4C 12 12 4D
鏀規垚
00 6E 00 04 00 03 00 00 00 24 12 10 4C 12 10 4D
紼嬪簭灝變細杈撳嚭sss111 sss111,鑰屼笉鏄拰鍘熺▼搴忎竴鏍瘋緭鍑簊ss111 sss222,鍥犱負鎴?br />
浠妸瀵?/span>"sss222"鐨勭浉瀵瑰紩鐢?2鏀規垚浜嗗"sss111"鐨勭浉瀵瑰紩鐢?0.
------------鍒嗗壊綰?br />
public class Test {
public static void main(String[] args) {
String s1 = "sss111";
String s2 = "sss111";
}
}
鍦ㄤ笂闈㈢▼搴忎腑瀛樺湪2涓浉鍚岀殑甯擱噺"sss111",瀵逛簬n涓肩浉鍚岀殑String甯擱噺,鍦–onstant Pool涓?br />
鍙細鍒涘緩涓涓?鎵浠ュ湪緙栬瘧濂界殑class鏂囦歡涓?鎴戜滑鍙兘鎵懼埌涓涓"sss111"鐨勮〃紺?
000000abh: 08 00 11 01 00 06 73 73 73 31 31 31 ; ......sss111
鍦ㄧ▼搴忔墽琛岀殑鏃跺?Constant Pool浼氬偍瀛樺湪Method Area,鑰屼笉鏄痟eap涓?
鍙﹀,瀵逛簬""鍐呭涓虹┖鐨勫瓧絎︿覆甯擱噺,浼氬垱寤轟竴涓暱搴︿負0,鍐呭涓虹┖鐨勫瓧絎︿覆鏀懼埌Constant Pool涓?
鑰屼笖Constant Pool鍦ㄨ繍琛屾湡鏄彲浠ュ姩鎬佹墿灞曠殑.
鍏充簬String綾葷殑璇存槑
1.String浣跨敤private final char value[]鏉ュ疄鐜板瓧絎︿覆鐨勫瓨鍌?涔熷氨鏄String瀵硅薄鍒涘緩涔嬪悗,灝變笉鑳?br />
鍐嶄慨鏀規瀵硅薄涓瓨鍌ㄧ殑瀛楃涓插唴瀹?灝辨槸鍥犱負濡傛,鎵嶈String綾誨瀷鏄笉鍙彉鐨?immutable).
2.String綾繪湁涓涓壒孌婄殑鍒涘緩鏂規硶,灝辨槸浣跨敤""鍙屽紩鍙鋒潵鍒涘緩.渚嬪new String("i am")瀹為檯鍒涘緩浜?涓?br />
String瀵硅薄,涓涓槸"i am"閫氳繃""鍙屽紩鍙峰垱寤虹殑,鍙︿竴涓槸閫氳繃new鍒涘緩鐨?鍙笉榪囦粬浠垱寤虹殑鏃舵湡涓嶅悓,
涓涓槸緙栬瘧鏈?涓涓槸榪愯鏈?/span>!
3.java瀵筍tring綾誨瀷閲嶈澆浜?/span>+鎿嶄綔絎?鍙互鐩存帴浣跨敤+瀵逛袱涓瓧絎︿覆榪涜榪炴帴.
4.榪愯鏈熻皟鐢⊿tring綾葷殑intern()鏂規硶鍙互鍚慡tring Pool涓姩鎬佹坊鍔犲璞?
String鐨勫垱寤烘柟娉?/strong>
涓鑸湁濡備笅鍑犵
1.鐩存帴浣跨敤""寮曞彿鍒涘緩.
2.浣跨敤new String()鍒涘緩.
3.浣跨敤new String("someString")鍒涘緩浠ュ強鍏朵粬鐨勪竴浜涢噸杞芥瀯閫犲嚱鏁板垱寤?
4.浣跨敤閲嶈澆鐨勫瓧絎︿覆榪炴帴鎿嶄綔絎?/span>+鍒涘緩.
String s2 = new String("s1") ;
涓婇潰鍒涘緩浜嗗嚑涓猄tring瀵硅薄?
絳旀:3涓?,緙栬瘧鏈烠onstant Pool涓垱寤?涓?榪愯鏈焗eap涓垱寤?涓?
]]>
@interface ClassInfo {
String created() default "Jan 31 2005";
String createdBy();
String lastModified();
String lastModifiedBy();
Revision revision();
}
ElementType.TYPE鎻忕粯鏀寔鐨勮寖鍥?br />
ANNOTATION_TYPE, CONSTRUCTOR, METHOD, FIELD, LOCAL_VARIABLE, PARAMETER, PACKAGE, and TYPE
浠栨敮鎸佸畾涔夐粯璁ゅ?br />
瀹冨彲浠ユ湁0涓厓绱?/p>
created = "Jan 31 2005",
createdBy = "James Gosling",
lastModified = "Jan 31 2005",
lastModifiedBy = "James Gosling",
revision = @Revision
)
public class Foo {
// ...
}
]]>
宸ヤ綔鍘熺悊搴旇鏄繖鏍風殑錛氫竴鏃﹀瀮鍦炬敹闆嗗櫒鍑嗗濂介噴鏀懼璞″崰鐢ㄧ殑瀛樺偍絀洪棿錛屽畠棣栧厛璋冪敤finalize()錛岃屼笖鍙湁鍦ㄤ笅涓嬈″瀮鍦炬敹闆嗚繃紼嬩腑錛屾墠浼氱湡姝e洖鏀跺璞$殑鍐呭瓨銆?/p>
涓轟粈涔堣浣跨敤finalize()鏂規硶
鍥犱負java鍐呭瓨鍥炴敹涔嬭兘鍥炴敹鑷繁java鑷繁鍒涘緩鐨勫璞★紝鑰屽璋冪敤鏈猨ava鐨勫璞★紝濡侰,C++鍒涘緩鐨勫璞★紝涓嶈兘鑷姩鐨勬竻闄わ紝鍙互閫氳繃鍦╢inalize()鏂規硶錛屽皢榪欎簺瀵硅薄鏄劇ず鐨勬竻闄ゃ?/p>
finalize()鏈鏈夌敤澶勭殑鍦版柟涔嬩竴鏄瀵熷瀮鍦炬敹闆嗙殑榪囩▼銆?/p>
杈撳叆緇撴灉涓猴細
Created 47 Beginning to finalize after 8694 Chairs have been created Finalizing Chair #47, Setting flag to stop Chair creation After all Chairs have been created: total created = 9834, total finalized = 108 bye!
鎴愬憳鍒濅嬌鍖?/strong>
鍙互鏂規硶璧嬪煎垵浣垮寲鎴愬憳
涓嬮潰榪欐牱鍋氭槸鍚堟硶鐨勶細
class CInit {
int i = f();
int j = g(i);
//...
}
浣嗕笅闈㈣繖鏍峰仛鏄潪娉曠殑錛?br />
class CInit {
int j = g(i);
int i = f();
//...
}
鏋勯犲櫒鍒濅嬌鍖?/strong>
class Counter {
int i;
Counter() { i = 7; }
i棣栧厛浼氬垵濮嬪寲鎴愰浂錛岀劧鍚庡彉鎴?銆?/pre>1.鍒濅嬌鍖栭『搴?/strong>鍏堝垵浣垮寲鎴愬憳錛岀劧鍚庢墽琛屾瀯閫犲櫒鍐呭2.闈欐佹暟鎹垵浣垮寲public class Dog {
public static Dog sDog=new Dog("static dog");
public Dog(String str){
System.out.println(str);
}
public static void main(String[] args){
Dog dog=new Dog("init");
}
}
杈撳叆鍑虹粨鏋?/pre>static dog
init(1) 綾誨瀷涓篋og鐨勪竴涓璞¢嬈″垱寤烘椂錛屾垨鑰匘og綾葷殑static鏂規硶錛弒tatic瀛楁棣栨璁塊棶鏃訛紝Java瑙i噴鍣ㄥ繀欏繪壘鍒癉og.class錛堝湪浜嬪厛璁懼ソ鐨勭被璺緞閲屾悳绱級銆?br /> (2) 鎵懼埌Dog.class鍚庯紙瀹冧細鍒涘緩涓涓狢lass瀵硅薄錛岃繖灝嗗湪鍚庨潰瀛﹀埌錛夛紝瀹冪殑鎵鏈塻tatic鍒濆鍖栨ā鍧楅兘浼氳繍琛屻傚洜姝わ紝static鍒濆鍖栦粎鍙戠敓涓嬈♀斺斿湪Class瀵硅薄棣栨杞藉叆鐨勬椂鍊欍?br /> (3) 鍒涘緩涓涓猲ew Dog()鏃訛紝Dog瀵硅薄鐨勬瀯寤鴻繘紼嬮鍏堜細鍦ㄥ唴瀛樺爢錛圚eap錛夐噷涓轟竴涓狣og瀵硅薄鍒嗛厤瓚沖澶氱殑瀛樺偍絀洪棿銆?br /> (4) 榪欑瀛樺偍絀洪棿浼氭竻涓洪浂錛屽皢Dog涓殑鎵鏈夊熀鏈被鍨嬭涓哄畠浠殑榛樿鍊鹼紙闆剁敤浜庢暟瀛楋紝浠ュ強boolean鍜宑har鐨勭瓑浠瘋瀹氾級銆?br /> (5) 榪涜瀛楁瀹氫箟鏃跺彂鐢熺殑鎵鏈夊垵濮嬪寲閮戒細鎵ц銆?br /> (6) 鎵ц鏋勫緩鍣ㄣ?/p>
3.鏄庣‘榪涜鐨勯潤鎬佸垵濮嬪寲
class Spoon {
static int i;
static {
i = 47;
}
}
榪欐浠g爜浠呮墽琛屼竴嬈♀斺旈嬈$敓鎴愰偅涓被鐨勪竴涓璞℃椂錛屾垨鑰呴嬈¤闂睘浜庨偅涓被鐨勪竴涓猻tatic鎴愬憳鏃?/pre>4.闈為潤鎬佸疄渚嬬殑鍒濆鍖?/strong>class Mug {
Mug(int marker) {
System.out.println("Mug(" + marker + ")");
}
}
public class Mugs {
Mug c1;
{
c1 = new Mug(1);
System.out.println("c1 initialized");
}
Mugs() {
System.out.println("Mugs()");
}
public static void main(String[] args) {
System.out.println("Inside main()");
Mugs x = new Mugs();
}
}
杈撳叆鍑虹粨鏋?/pre>Inside main()
Mug(1)
c1 initialized
Mugs()
]]> 主站蜘蛛池模板: 久久91亚洲人成电影网站| 亚洲欧洲日产国码一级毛片| 亚洲av成人无码久久精品| a级毛片免费网站| 亚洲国产日韩在线观频| 一个人免费观看视频在线中文| 99精品视频免费在线观看| 亚洲久本草在线中文字幕| 中国人xxxxx69免费视频| 亚洲精品视频免费看| 无人在线观看完整免费版视频| 亚洲中文无码永久免费| 国产小视频免费观看| 一级A毛片免费观看久久精品| 中文字幕在亚洲第一在线| 成人性生交大片免费看好| 亚洲熟妇av一区二区三区下载| 亚洲中文无码永久免费| 美女一级毛片免费观看| 亚洲中文字幕久久精品无码喷水 | 亚洲国产精品无码久久久| 成人免费视频一区二区三区| 美女视频黄频a免费观看| 亚洲日韩激情无码一区| 1000部拍拍拍18免费网站| 亚洲va中文字幕| 亚洲人成色77777| 成全影视免费观看大全二| 一级毛片视频免费观看| 精品亚洲国产成AV人片传媒| 免费观看男人免费桶女人视频| 一级成人a做片免费| 亚洲精品国产福利片| 亚洲?v女人的天堂在线观看| 国产偷伦视频免费观看| 亚洲www77777| 国产亚洲精品线观看动态图| 免费国产作爱视频网站| 久久国产精品免费一区二区三区| 亚洲国产精品综合久久网各| 在线精品亚洲一区二区三区|