ÉîÈëÑо¿java¶ÔString×Ö·û´®¶ÔÏóµÄ´´½¨ÒÔ¼°¹ÜÀí
Constant Pool³£Á¿³ØµÄ¸ÅÄî:
ÔÚ½²µ½StringµÄÒ»Ð©ÌØÊâÇé¿öʱ,×Ü»áÌáµ½String Pool»òÕßConstant Pool,µ«ÊÇÎÒÏëºÜ¶àÈ˶¼²»Ì«
Ã÷°×Constant Poolµ½µ×ÊǸöÔõôÑùµÄ¶«Î÷,ÔËÐеÄʱºò´æ´¢ÔÚÄÄÀï,ËùÒÔÔÚÕâÀïÏÈ˵һÏÂConstant PoolµÄÄÚÈÝ.
String PoolÊǶÔÓ¦ÓÚÔÚConstant PoolÖд洢String³£Á¿µÄÇøÓò.ϰ¹ß³ÆÎªString Pool,Ò²ÓÐÈ˳ÆÎª
String Constant Pool.ºÃÏñûÓÐÕýʽµÄÃüÃû
??
ÔÚjava±àÒëºÃµÄclassÎļþÖÐ,ÓиöÇøÓò³ÆÎªConstant Pool,ËûÊÇÒ»¸öÓÉÊý×é×é³ÉµÄ±í,ÀàÐÍ
Ϊcp_info constant_pool[],ÓÃÀ´´æ´¢³ÌÐòÖÐʹÓõĸ÷ÖÖ³£Á¿,°üÀ¨Class
/
String
/
IntegerµÈ¸÷
ÖÖ»ù±¾JavaÊý¾ÝÀàÐÍ,ÏêÇé²Î¼ûThe Java Virtual Machine Specification
4
.4Õ½Ú.
¶ÔÓÚConstant Pool,±íµÄ»ù±¾Í¨ÓýṹΪ:
cp_info {
u1 tag;
u1 info[];
}
tagÊÇÒ»¸öÊý×Ö,ÓÃÀ´±íʾ´æ´¢µÄ³£Á¿µÄÀàÐÍ,ÀýÈç8±íʾStringÀàÐÍ,5±íʾLongÀàÐÍ,info[]¸ù¾Ý
ÀàÐÍÂëtagµÄ²»Í¬»á·¢ÉúÏàÓ¦±ä»¯.
¶ÔÓÚStringÀàÐÍ,±íµÄ½á¹¹Îª:
CONSTANT_String_info {
u1 tag;
u2 string_index;
}
tag¹Ì¶¨Îª8,string_indexÊÇ×Ö·û´®ÄÚÈÝÐÅÏ¢,ÀàÐÍΪ:
CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}
tag¹Ì¶¨Îª1,lengthΪ×Ö·û´®µÄ³¤¶È,bytes[length]Ϊ×Ö·û´®µÄÄÚÈÝ.
(ÒÔÏ´úÂëÔÚjdk6ÖбàÒë)
ΪÁËÏêϸÀí½âConstant PoolµÄ½á¹¹,ÎÒÃDzο´Ò»Ð©´úÂë:
String s1
=
"
sss111
"
;
String s2
=
"
sss222
"
;
System.out.println(s1
+
"
"
+
s2);
ÓÉÓÚ
"
sss111
"
ºÍ
"
sss222
"
¶¼ÊÇ×Ö·û´®³£Á¿,ÔÚ±àÒëÆÚ¾ÍÒѾ´´½¨ºÃÁË´æ´¢ÔÚclassÎļþÖÐ.
ÔÚ±àÒëºóµÄclassÎļþÖÐ»á´æÔÚÕâ2¸ö³£Á¿µÄ¶ÔÓ¦±íʾ:
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³£Á¿½á¹¹,ÎÒÃÇ·ÖÎöÒ»ÏÂ
¿ªÊ¼µÄ08ΪCONSTANT_String_info½á¹¹ÖеÄtag,¶ø11Ó¦¸ÃÊÇËüµÄÏà¶ÔÒýÓÃ,01Ϊ
CONSTANT_Utf8_infoµÄtag,06Ϊ¶ÔÓ¦×Ö·û´®µÄ³¤¶È,
73
73
73
31
31
31Ϊ×Ö·û´®¶Ô
Ó¦µÄ±àÂë,½Ó×Å·ÖÎö,»á·¢ÏÖºóÃæµÄÊǶÔÓ¦
"
sss222
"
Ïà¹ØÎĵµ£º
½ñÌìÀ´µ½Ñ§Ð£²ÅÖªµÀ£¬ÕâÊÇÕÅÀÏʦ¸øÎÒÃÇÉϿεÄ×îºóÒ»ÌìÁË£¬±¾À´¼Æ»®½²ÎåÌìµÄ£¬ÁÙʱµ÷ÕûÖ»½²ÁËÈýÌ죬ºÃ¶àͬѧ֪µÀÏûÏ¢ºó¶¼Í¨¹ý·ÉÇï¸øÀÏʦ·¢ÐÅÏ¢£¬Ï£ÍûÀÏʦÄÜ¶à´øÎÒÃǼ¸Ì죬µ«ÊÇÀÏʦ¸æËßÎÒÃÇÒòΪ¹«Ë¾ÀïÒ»Ð©ÖØÒªµÄÊÂÇéÐèÒª´¦Àí£¬ËùÒÔÖ»Äܵ÷Õûһϣ¬ÒÔºóµÄ¿ÎÊÇ·ëÍþÀÏʦ¸øÎÒÃÇÉÏ£¬»Ø¹ËÕâÈýÌìÉϿεÄÄÚÈÝ£¬ÕæµÄÊÜÒæ·Ëdz£¬Õ⼸ÌìÉϿΠ......
ÈçºÎ½»»»Á½¸ö±äÁ¿µÄÖµ£º
CÓïÑÔÖеĴ«Öµ´úÂëÈçÏ£º
int change(int x,int y)
{
int temp=x;
x=y;
y=temp;
}
CÓïÑÔÖеĴ«Ö·´úÂëÈçÏ£º
int change(int *p,int *q)
{
int temp=*p;
*p=*q;
*q=temp;
}
ʹÓÃC++ÖеÄÒýÓÃÀàÐÍ´úÂëÈçÏÂ:
int change(int &x,int &y)
{
int temp=x;
x=y;
y=temp;
}
JAV ......
java¹Ø¼ü×ÖÒÔǰûʲôעÒ⣬ÒòΪÊǺܻù´¡µÄ¶«¶«¡£Ö»ÊǽñÌì×öSCJPÌâÄ¿£¬Ò»¿´´ð°¸ÏÅÎÒ´óÌø£¬·×ªÁËÎÒÒÔÍùµÄ´íÎó¹ÛÄî¡£²éÔÄÁ˲»ÉÙ×ÊÁÏÖÕÓÚŪÇå³þÁË¡£ÌâÄ¿ÈçÏ£º
Which are not Java keywords?
A. TRUE B. sizeof C. const D. super E. void
& ......
JAVATMÓëXML 2010-05-14
Ò»¡¢¸ÅÄî
l ÈκÎXMLÎĵµ¶ÔÈκÎÀàÐ͵ÄÓ¦ÓÃÒÔ¼°ÕýÈ·µÄ½âÎö¶¼±ØÐë¾ßÓÐÁ¼ºÃµÄ½á¹¹well-formed
l XMLÎĵµ¿ÉÒÔÊÇÓÐЧµØ£¨valid£©£¬µ«²¢·ÇÒ»¶¨ÒªÇóÓÐЧ¡£
l PI£¨processing instruction£©¸ñʽ£º<?target instructions?>¡£XMLÖеĴ¦ÀíÖ¸ÁîÖ»ÄÜÊǽâÎöÆ÷¿ÉÒÔʶ±ðµÄXML±ê×¼´¦ÀíÃüÁ ......