ÉîÈëÑо¿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
"
Ïà¹ØÎĵµ£º
Ò».ÖØÔØ£º¼´Í¬Ãû·½·¨²»Í¬²ÎÊý£»¶à̬£ºÍ¬Ãûͬ²Î·½·¨£¬ÔÚ¾ßÓм̳йØÏµµÄÀàÖеĶ¯Ì¬Ñ¡Ôñ
¶þ.ÖØÔØ´«Èë²ÎÊýÊý¾ÝÀàÐÍСÓÚ·½·¨ÉùÃ÷²ÎÊýÀàÐÍʱ£¬»á±»×Ô¶¯ÌáÉý¡£char ÀàÐͻᱻֱ½ÓÌáÉýΪint¡£ÐéÄâ»ú¾ÍÊÇÓÃint±íʾcharµÄ¡£
Èý.static·½·¨ÄÚ²¿²»Äܵ÷Ó÷Çstatic·½·¨£¬·´Ö®¿ÉÒÔ¡£
ËÄ.¶ÔÓÚ·½·¨¾Ö²¿±äÁ¿£¬Èç¹ûδ³õʼ»¯¾Íµ÷Ó㬱àÒë´íÎó¡ ......
Ò»Ö±ÒÔÀ´£¬java¶ÔÓÚÎÒ¶¼ÊÇÐÂÊÂÎ¶ÔÓÚÐÂÊÂÎïµÄ½ÓÊÜ·½Ê½Ò²Ò»Ö±Ï°¹ß´ÓdzÈëÉÑÐò½¥½ø¡£
µ«ÊǽñÌ죬ÕÅТÏêÀÏʦ¸øÎÒÃÇÉÏÁËÉú¶¯µÄÒ»¿Î£¬Ò»¸ö³ÌÐòÔ±×îÖØÒªµÄÄÜÁ¦¾ÍÊÇѧϰÄÜÁ¦£¬ÒòΪ
¼ÆËã»úÁìÓòµÄ¼¼ÊõÆä¸üг¬¿ì£¬Ä¿Ç°ËùÕÆÎÕµÄ֪ʶºÜÓпÉÄܶÌʱ¼äÄڻᱻÌÔÌ£¬¶øÇÒ»á³öÏÖ¸üºÃ
¸ü¼ò½àµÄÓïÑÔ£¬ÄÇô¸ÃÔõÃ´È¥ÕÆÎÕÄØ¡£ÕÅÀÏʦÈÏΪ£¬ ......
//ÎļþµÄ´ò¿ª
import java.awt.FileDialog;
import java.awt.event.*;
import java.io.*;
import java.io.File;
import java.io.FileReader;
public class FileOpen {
private FileDialog filedialog_open;
private String fileopen = null, filename = null;// ÓÃÓÚ´æ·Å´ò¿ªÎļþµØÖ· ºÍÎļþÃû
private File fi ......
±¾ÎĽ«¸æËßÄãѧϰJavaÐèÒª´ïµ½µÄ30¸öÄ¿±ê£¬Ï£ÍûÄܹ»¶ÔÄãµÄѧϰÓÐËù°ïÖú¡£¶Ô±ÈÒ»ÏÂ×Ô¼º£¬ÄãÒÑ¾ÕÆÎÕÁËÕâ30ÌõÖеĶàÉÙÌõÁËÄØ£¿
¡¡¡¡1.ÄãÐèÒª¾«Í¨ÃæÏò¶ÔÏó·ÖÎöÓëÉè¼Æ(OOA/OOD)¡¢É漰ģʽ(GOF£¬J2EEDP)ÒÔ¼°×ÛºÏģʽ¡£ÄãÓ¦¸ÃÊ®·ÖÁ˽âUML£¬ÓÈÆäÊÇclass£¬object£¬interactionÒÔ¼°statediagrams¡£
¡¡¡¡2.ÄãÐèҪѧϰJAVAÓïÑԵĻù´¡ ......
Ò»¡¢ JDK (Java Development Kit)
JDKÊÇÕû¸öJavaµÄºËÐÄ£¬°üÀ¨ÁËJavaÔËÐл·¾³£¨Java Runtime Envirnment£©£¬Ò»¶ÑJava¹¤¾ßºÍJava»ù´¡µÄÀà¿â(rt.jar)¡£²»ÂÛʲçÛJavaÓ¦Ó÷þÎñÆ÷ʵÖʶ¼ÊÇÄÚÖÃÁËij¸ö°æ±¾µÄJDK¡£Òò´ËÕÆÎÕJDKÊÇѧºÃJavaµÄµÚÒ»²½¡£×îÖ÷Á÷µÄJDKÊÇSun¹«Ë¾·¢²¼µÄJDK£¬³ýÁËSunÖ®Í⣬»¹Óкܶ๫˾ºÍ×éÖ¯¶¼¿ª· ......