BBSˮľÇ廪վ¡Ã¾«»ªÇø

·¢ÐÅÈË: java96@SMTH (³¯»¨Ï¦Ê°±­ÖоÆ), ÐÅÇø: Java 
±ê  Ìâ: JavaÓïÑÔ¹æ¸ñ˵Ã÷ 
·¢ÐÅÕ¾: Ë®Ä¾Ç廪  (Mon Aug 12 13:50:54 1996) 
תÐÅÕ¾: SMTH 
 
        JavaÓïÑÔ¹æ¸ñ˵Ã÷(Òë×ÔJava language specification, ÂÔ¼ÓÏêÊö) 
 
1.³ÌÐò½á¹¹ 
JavaÓïÑÔµÄÔ´³ÌÐò´úÂëÓÉÒ»¸ö»ò¶à¸ö±àÒëµ¥Ôª(compilation unit)×é 
³É£¬Ã¿¸ö±àÒëµ¥ÔªÖ»Äܰüº¬ÏÂÁÐÄÚÈÝ(¿Õ¸ñºÍ×¢ÊͳýÍâ)£º 
    * Ò»¸ö³ÌÐò°üÓï¾ä(package statement ) 
    * ÒýÈëÓï¾ä(import statements) 
    * ÀàµÄÉùÃ÷(class declarations) 
    * ½çÃæÉùÃ÷(interface declarations) 
ÿ¸öJavaµÄ±àÒëµ¥Ôª¿É°üº¬¶à¸öÀà»ò½çÃæ£¬µ«ÊÇÿ¸ö±àÒ뵥ԪȴÖÁ 
¶àÓÐÒ»¸öÀà»òÕß½çÃæÊǹ«¹²µÄ¡£ 
Java µÄÔ´³ÌÐò´úÂë±»±àÒëÖ®ºó£¬±ã²úÉúÁËJava×Ö½Ú´úÂë(bytecode)¡£ 
JavaµÄ×Ö½Ú´úÂëÓÉһЩ²»ÒÀÀµÓÚ»úÆ÷µÄÖ¸Áî×é³É£¬ÕâЩָÁîÄܱ»JavaµÄ 
ÔËÐÐϵͳ(runtime system)ÓÐЧµØ½âÊÍ¡£JavaµÄÔËÐÐϵͳ¹¤×÷ÆðÀ´Èçͬһ 
̨ÐéÄâ»ú¡£ 
ÔÚµ±Ç°µÄJavaʵÏÖÖУ¬Ã¿¸ö±àÒëµ¥Ôª¾ÍÊÇÒ»¸öÒÔ.javaΪºó׺µÄÎļþ¡£ 
ÿ¸ö±àÒëµ¥ÔªÓÐÈô¸É¸öÀ࣬±àÒëºó£¬Ã¿¸öÀàÉú³ÉÒ»¸ö.classÎļþ¡£.class 
ÎļþÊÇJavaÐé»úÆ÷Âë¡£ 
 
2. ´Ê·¨ÎÊÌâ 
ÔÚ±àÒëµÄ¹ý³ÌÖУ¬JavaÔ´³ÌÐò´úÂëÖеÄ×Ö·û±»»®·ÖΪһϵÁеıê¼Ç 
(token)¡£Java±àÒëÆ÷¿ÉÒÔʶ±ðÎåÖÖ±ê¼Ç: ±êʶ·û¡¢¹Ø¼ü×Ö¡¢×ÖÃæÁ¿¡¢ÔË 
Ëã·ûÒÔ¼°ÌØÊâ·Ö¸ô·û¡£×¢ÊÍÒÔ¼°ÖîÈç¿Õ¸ñ¡¢ÖƱí·û¡¢»»ÐзûµÈ×Ö·û £¬¶¼ 
²»ÊôÓÚ±êʶ֮ÁУ¬µ«ËûÃÇÈ´³£±»ÓÃÀ´·Ö¸ô±ê¼Ç¡£ 
Java³ÌÐòµÄ±àд²ÉÓ÷º´úÂëUnicode×Ö·û¼¯£¬Èô²ÉÓÃÆäËüµÄ×Ö·û¼¯£¬ 
ÔòÐèÔÚ±àÒëǰת»»³ÉUnicode¡£ 
 
2.1 ×¢ÊÍ 
    JavaÓïÑÔÌṩÁË3ÖÖÐÎʽµÄ×¢ÊÍ£º 
    //text      ´Ó//µ½±¾ÐнáÊøµÄËùÓÐ×Ö·û¾ù×÷ΪעÊͶø±»±àÒëÆ÷ºöÂÔ¡£ 
    /* text */   ´Ó/*µ½*/ ¼äµÄËùÓÐ×Ö·û»á±»±àÒëÆ÷ºöÂÔ¡£ 
/** text */  
µ±ÕâÀà×¢ÊͳöÏÖÔÚÈκÎÉùÃ÷֮ǰʱ½«»á×÷ÌØÊâ´¦Àí£¬ËüÃDz»ÄÜÔÙÓà
ÔÚ´úÂëµÄÈκεط½¡£ÕâÀà×¢ÊÍÒâζ×ű»À¨ÆðÀ´µÄÕýÎIJ¿·Ö£¬Ó¦¸Ã×÷ΪÉù 
Ã÷ÏîÄ¿µÄÃèÊö£¬¶ø±»°üº¬ÔÚ×Ô¶¯²úÉúµÄÎĵµÖС£ 
 
2.2  ±êʶ·û 
±êʶ·ûµÄÊ××Ö·û±ØÐëÊÇÒ»¸ö×Öĸ£¬Ï»®Ïß("_")»òÃÀÔª·ûºÅ("$")¡£ ºó 
ÃæµÄ×Ö·ûÒ²¿ÉÊÇÊý×Ö0-9¡£ JavaʹÓ÷º´úÂë×Ö·û¼¯£¬ÎªÁ˱ãÓÚʶ±ðºÃÒ» 
ºÏ·¨±êʶ·û£¬ÏÂÃæÁгöËüµÄ¡°×Öĸ¡±£º 
    * ´óд×Öĸ¡°A¡±¡«¡°Z¡± 
    * Ð¡Ð´×Öĸ¡°a¡±¡«¡°z¡± 
    * ·º´úÂ루Unicode£©ÖÐËùÓÐ×Ö·û±àÂëÔÚÊ®Áù½øÖÆÊý00C0֮ǰµÄ×Ö 
·û¡£±êʶ·ûÖУ¬Ê××ÖĸºóµÄ×Ö·û¿ÉÒÔÊÇÈÎÒâµÄ¡£µ±È»£¬UnicodeÇø¶ÎÖР
ÄÇЩ±»±£Áô×÷ÌØÊâ×Ö·ûµÄ³ýÍâ¡£ 
ÓÉ´Ë£¬¡°garton¡±¼°¡°Mj¦µlner¡±¶¼ÊǺϷ¨±êʶ·û£¬µ«ÊÇ£¬°üÀ¨ 
ÖîÈç¡°¦Ð¡±µÄ×Ö·û´®È´²»ÊǺϷ¨µÄ¡£ 
ΪÁËÈ¡µÃ¸ü¶àµÄÓйطº´úÂë±ê×¼µÄÐÅÏ¢£¬Çë²ÎÔÄ¡°The Unicode  
Standard¡±£¬¡°World Wide Character Encoding version 1.0£¬volumes 1 £¦  
2¡±£¬Unicode¹«Ë¾µÄFTPµØÖ·ÊÇunicode.org¡£ 
 
2.3 ¹Ø¼ü×Ö 
     ÏÂÃæµÄ±êʶ·û±»±£ÁôÓÃ×÷¹Ø¼ü×Ö£¬ËûÃDz»ÄÜ×÷ÈÎºÎÆäËüµÄÓÃ;¡£ 
abstract     default     goto*       null         synchronized 
boolean     do         if          package     this 
break       double     implements   private      threadsafe   
byte        else       import       protected    throw 
byvalve *    extends    instanceof    public       transient 
case        false       int          return       true 
catch       final       interface     short        try  
char        finally     long         static        void 
class        float      native        super        while 
const *      for        new         switch  
continue 
    ÆäÖУ¬¼Ó*±ê¼ÇºóÊDZ»±£Áôµ«µ±Ç°È´Î´Ê¹Óõġ£ 
 
2.4 ×ÖÃæÁ¿ 
×ÖÃæÁ¿(literal)ÊÇijЩÀàÐÍÖµµÄ»ù±¾±íÊö£¬ÕâЩÀàÐͰüÀ¨ÕûÐÍ£¬¸¡µã 
ÐÍ£¬²¼¶ûÁ¿£¬×Ö·û¼°×Ö·û´®¡£ 
 
2.4.1 ÕûÐÍ×ÖÃæÁ¿ 
ÕûÊý¿ÉÓÐÈýÖÖ±íʾÐÎʽ£º Ê®½øÖÆ£¬°Ë½øÖƺÍÊ®Áù½øÖÆ¡£Ò»¸öÊ®½øÖÆ 
ÕûÐÍ×ÖÃæÁ¿ÓÉһϵÁеÄÊý×Ö×é³É£¬µ«ËüµÄµÚÒ»¸öÊý×Ö²»ÄÜÊÇ0(ÓÐʱʮ½ø 
ÖÆÊý×ÖÒ²¿ÉÏóÏÂÃæ½²µÄÄÇÑù¼Óºó׺)¡£ÕûÊýÒ²¿É±í´ï³É°Ë½øÖÆ»òÊ®Áù½øÖÆ 
ÐÎʽ¡£ÒÔ0¿ªÍ·µÄÕûÐÍ×ÖÃæÁ¿£¬Òâζ×ÅËüÊÇÒ»¸öÊ®Áù½øÖƵġ£Ê®Áù½øÖÆ 
ÕûÊý¿ÉÒÔ°üÀ¨Êý×Ö0-9ÒÔ¼°×Öĸa-f¼°A-F¡£°Ë½øÖÆÕûÊýÖÐÔòÖ»ÄÜÊdzöÏÖ 
Êý×Ö0-7¡£ÔÚ³¬¹ý32λËùÄܱíʾµÄ·¶Î§Ö®Ç°£¬ÕûÐÍ×ÖÃæÁ¿µÄÀàÐͼ´Îªint£¬ 
·ñÔòΪlongÐÍ¡£Ò»¸öÕûÐÍ×ÖÃæÁ¿¿Éͨ¹ý¼Óºó׺L»òl¶øÇ¿ÆÈ³ÉlongÐÍ¡£ 
    ÏÂÃæµÄ¾ùΪºÏ·¨µÄÕûÐÍ×ÖÃæÁ¿¡£ 
    2   2L   0777    
 
2.4.2 ¸¡µã×ÖÃæÁ¿ 
Ò»¸ö¸¡µã×ÖÃæÁ¿¿É°üÀ¨ÒÔϲ¿·Ö: Ò»¸öÊ®½øÖÆÕûÊý£¬Ò»¸öСÊýµã¡°.¡±£¬ 
СÊý²¿·Ö(ÁíÍâÒ»¸öÊ®½øÖÆÕûÊý)£¬Ö¸Êý²¿·Ö£¬Ò»¸öÀàÐͺó׺¡£Ö¸Êý²¿·Ö 
ÊÇÒ»¸öe»òEºó¸úÒ»¸öÕûÊý¡£¸¡µã×ÖÃæÁ¿ÖÁÉÙ°üº¬ÓÐÒ»¸öÊý×Ö£¬Íâ¼Ó»ò 
ÕßÒ»¸öСÊýµã»òÕßÒ»¸öe(»òE)£¬ÏÂÃæ¾ÙһЩ¸¡µã×ÖÃæÁ¿µÄÀý×Ó£º 
    3.1415    3.1E12    .1e12   2E12 
¾ÍÏóÔÚºóÃæÃèÊöµÄÄÇÑù£¬JavaÓïÑÔÓÐÁ½ÖÖ¸¡µãÀàÐÍ£º float ¼° 
double£¬Óû§¿É°´ÒÔÏÂд·¨Çø·Ö£º  
    2.0d»ò2.0D        double ÐÍ 
    2.0f»ò2.0F»ò2.0   floatÐÍ 
 
2.4.3 ²¼¶û×ÖÃæÁ¿ 
   ²¼¶û(boolean)×ÖÃæÁ¿ÓÐÁ½¸öÖµ£º true¼°false¡£ 
 
2.4.4 ×Ö·û×ÖÃæÁ¿ 
×Ö·û×ÖÃæÁ¿ÊÇÒ»¸öÓɵ¥ÒýºÅÀ¨ÆðµÄ×Ö·û(»òÕßÊÇÓÉÒ»×é×Ö·ûÀ´±íÊö 
Ò»¸ö×Ö·û)¡£×Ö·ûÊôÓÚcharÀàÐÍ£¬²¢ÇÒ¾ù´Ó·º´úÂë×Ö·û¼¯ÖеÃÀ´¡£¶øÏÂÃæ 
ÁгöµÄתÒåÐòÁÐÔòÓÃÀ´ÃèÊöһЩ·ÇͼÐÎ×Ö·û£¬ËüÃÇÒÔ·´Ð±¸Ü¡°\¡±¿ªÊ¼ÒÔ 
×÷תÒåÓᣠ
 
ÐøÐзûÍ·       <newline>         \ 
»»ÐР          NL(LF)           \n 
´¹Ö±ÖƱí·û     HT               \t 
Í˸ñ           BS               \b 
»Ø³µ           CR               \r 
×ßÖ½»»Ò³       FF               \f 
·´Ð±¸Ü         \                 \\ 
µ¥ÒýºÅ         '                  \' 
Ë«ÒýºÅ         "                  \" 
°Ë½øÖÆÊý      0ddd              \ddd 
Ê®Áù½øÖÆÊý    0xdd              \xdd 
·º´úÂë×Ö·û    0xdddd           \udddd 
 
2.4.5 ´®×ÖÃæÁ¿ 
´®×ÖÃæÁ¿ÊÇË«ÒýºÅÒýÆðµÄÁã¸ö»ò¶à¸ö×Ö·ûµÄÐòÁС£Ã¿¸ö´®×ÖÃæÁ¿±» 
¿´×÷ÊÇÒ»¸ö´®¶ÔÏ󣬶ø²¢·ÇÊÇÒ»¸ö×Ö·ûµÄÊý×飬ÀýÈç¡°abc¡±´´½¨ÁËÒ» 
¸öеĴ®ÀàµÄʵÀý¡£ÏÂÃæµÄ¶¼ÊǺϷ¨µÄ´®×ÖÃæÁ¿£º 
    " "       \\¿Õ´® 
    "\" "     \\Ö»°üº¬Ò»¸öË«ÒýºÅµÄ´® 
    "This is a string" 
    "This is a \ 
         two-line string" 
 
2.5  ÔËËã·û¼°ÌØÊâ·Ö¸ô·û 
   ÏÂÃæÕâЩ×Ö·ûÔÚJavaÔ´³ÌÐòÖÐ×÷ÔËËã·û»ò·Ö¸ô·ûÓ㺠
   +  ¡ª  !  %   ^   &   *   £ü   ¡«   /  >   < 
   (   )  {  }  [  ]  ; ?  :  £¬¡¤ = 
   ÁíÍ⣬ÏÂÃæÕâЩ¸´ºÏ×Ö·û±»ÓÃ×÷ÔËËã·û£º 
   ++    --   ==  <=   >=  !=  <<  >> 
   >>>  +=   -=   *=  /=   &=  /= 
   ^=  %=  <<=  >>=  >>>=  ¡¬   && 
   ºóÃæ»¹ÒªÔÚÔËËã·ûÒ»½ÚÖÐ×÷Ïêϸ½éÉÜ¡£ 
 
3. ÀàÐÍ 
ÈκÎÒ»¸ö±äÁ¿»ò±í´ïʽ¶¼ÓÐÒ»¸öÀàÐÍ£¬ÀàÐ;ö¶¨±äÁ¿¿ÉÄܵÄȡֵ·¶ 
Χ£¬¾ö¶¨¶ÔÕâЩֵÔÊÐíµÄ²Ù×÷£¬ÒÔ¼°ÕâЩ²Ù×÷µÄÒâÒåÊÇʲô¡£JavaÓïÑÔ 
ÖÐÌṩÁËÄÚÖö¨ÒåÀàÐÍ£¬³ÌÐòÔ±Ò²¿ÉÒÔÀûÓÃÀ༰½çÃæ(interface)»úÖÆ¹¹Ôì 
ÐÂÀàÐÍ¡£ 
JavaÓïÑÔÓÐÁ½ÖÖÀàÐÍ£º ¼òµ¥ÀàÐͺ͸´ºÏÀàÐÍ¡£¼òµ¥ÀàÐÍÖ¸ÄÇЩ²»ÄÜ 
ÔÙ·Ö¸îµÄÔ­×ÓÀàÐÍ¡£È磺ÕûÐÍ¡¢¸¡µãÐÍ¡¢²¼¶ûÐÍ¡¢×Ö·ûÐ;ùΪ¼òµ¥ÀàÐÍ¡£ 
¸´ºÏÀàÐͽ¨Á¢ÔÚ¼òµ¥ÀàÐ͵Ļù´¡ÉÏ¡£JavaÓïÑÔÓÐÈýÖÖ¸´ºÏÀàÐÍ£ºÊý×é¡¢ 
À༰½çÃæ¡£ÔÚ±¾½ÚÖУ¬ÎÒÃÇÖ÷ÒªÌÖÂÛ¼òµ¥ÀàÐͼ°Êý×é¡£ 
 
3.1 ÊýÖµÀàÐÍ 
3.1.1 ÕûÊýÀàÐÍ 
ÕûÊýÓëC¼°C++ÖÐÏàËÆ£¬µ«ÓÐÁ½µãÇø±ð£º ÆäÒ»£¬ËùÓеÄÕûÊýÀàÐÍ 
¾ùÊǶÀÁ¢ÓÚ»úÆ÷µÄ£»Æä¶þ£¬¶ÔijЩ´«Í³µÄ¶¨Òå×÷³ö¸Ä±ä£¬ÒÔ·´Ó³×ÔCÎÊ 
ÊÀÒÔÀ´Ëù´øÀ´µÄ±ä»¯£¬ËÄÖÖÕûÊýÀàÐÍ·Ö±ð¾ßÓÐ8λ¡¢16λ¡¢32λ¼°64 
λµÄ¿í¶È£¬²¢ÇÒ¾ùÊÇÓзûºÅµÄ(signed)¡£ÈçÏÂËùʾ£º 
 
¿í¶È 
ÀàÐÍÃû 

byte 
16 
short 
32 
int  
64 
long 
 
Ò»¸ö±äÁ¿µÄÀàÐͲ»»áÖ±½ÓÓ°ÏìËüµÄ´æ´¢µÄ·ÖÅ䣬ÀàÐͽö½ö¾ö¶¨±äÁ¿ 
µÄËãÊõÐÔÖÊÒÔ¼°ºÏ·¨µÄȡֵ·¶Î§¡£Èç¹û°ÑÒ»¸ö³¬³öºÏ·¨·¶Î§µÄÖµ¸³¸øÒ» 
±äÁ¿£¬ÄÇôÕâ¸öÖµ½«ÊǶԺϷ¨ÖµÓòȡģºóµÄÖµ¡£ 
 
3.1.2 ¸¡µãÀàÐÍ 
¹Ø¼ü×Öfloat±íʾµ¥¾«¶È(32λ)£¬¶ødoubleÔò±íʾ˫¾«¶È(64λ)£¬Á½ 
¸öfloatÐÍÊýÔËËãµÄ½á¹ûÈÔÊÇfloatÐÍ£¬ÈôÓÐÆäÖÐ֮һΪdoubleÐÍ£¬Ôò½á 
¹ûΪdoubleÐÍ¡£¸¡µãÔËËã¼°Êý¾Ý¸ñʽ°´IEEE754Öе͍Ò壬ϸ½ÚÎÊÌâÇë 
²ÎÔÄ ¡°¸½Â¼A£º ¸¡µã¡±ÖÐÓйظ¡µãʵÏÖµÄϸ½Ú¡£ 
 
3.1.3 ×Ö·ûÀàÐÍ 
JavaÈ«²¿Ê¹Ó÷º´úÂë×Ö·û¼¯£¬Òò´ËcharÀàÐÍÊý¾Ý±»¶¨Òå³ÉÒ»¸ö16 
λµÄÎÞ·ûºÅÕûÊý¡£ 
 
3.2 ²¼¶ûÀàÐÍ 
µ±Ò»¸ö±äÁ¿µÄȡֵ»òΪture»òΪfalse£¬»òÕßÊǵ±Ò»¸ö·½·¨µÄ·µ»ØÖµÎªture»òfalseʱ£¬Ëüà
Ƕ¼ÊDz¼¶ûÀàÐ͵ġ£ÁíÍ⣬¹ØÏµÔËËãµÄ½á¹ûÒàÊDz¼ 
¶ûÐ͵ġ£   
    ²¼¶ûÖµ²»ÊÇÊýÖµÐÍ£¬Òò´Ë²»ÄÜÓÃÇ¿ÖÆÀàÐÍת»»°ÑËüÃÇת»¯³ÉÊýÖµ¡£ 
 
3.3 Êý×é 
Êý×éÔÚJavaÓïÑÔÖÐÊôµÚÒ»Àà¶ÔÏó¡£ÓÉËüÃÇ´úÌæÁËÖ¸ÕëÔËË㣬ËùÓеĠ
¶ÔÏó(°üÀ¨Êý×é)¶¼¿Éͨ¹ý±êʶÀ´ÒýÓ᣼´Ê¹±»µ±×÷ÊýÔËË㣬±êʶµÄÖµÒ² 
²»Ó¦±»ÆÆ»µ¡£Í¨¹ýnewÔËËã·û¿É´´½¨Ò»¸öÊý×é¡£ 
    char s[]=new char[30]; 
Êý×éµÚÒ»ÔªËØµÄϱêΪ0£¬ÔÚÉùÃ÷ÖÐÖ¸¶¨Î¬ÊýÊDz»ÔÊÐíµÄ¡£Ã¿´Î¶¼ 
±ØÐëÏÔʽµØÓÃnew·ÖÅäÊý×飺 
    int i [] =new int [3];  
    JavaÓïÑÔ²»Ö§³Ö¶àάÊý×飬µ«ÊÇ£¬³ÌÐòԱȴ¿ÉÒÔ´´½¨Êý×éµÄÊý×é¡£ 
    int i [ ]  [ ]=new int [3][4]; 
    ÖÁÉÙÓÐһάҪÃ÷È·¸ø¶¨£¬¶øÆäËüάÔò¿ÉÔÚÒÔºóÔÙÈ·¶¨¡£ÀýÈ磺 
    int i[] []=new int [3] [ ] 
    ÊÇÒ»¸öºÏ·¨µÄÉùÃ÷¡£ 
³ýÁËÔÚ±äÁ¿Ãû¼°·½·¨Ãûºó¸ú·½À¨ºÅÕâÖÖC·ç¸ñµÄÉùÃ÷Ö®Í⣬JavaÓï 
ÑÔÔÊÐí·½À¨ºÅ¸úÔÚÊý×éÀàÐÍÖ®ºó£¬ÏÂÃæÁ½ÐÐÊǵȼ۵ģº  
    int iarray[ ]; 
    int [ ] iarray; 
    Í¬ÑùµØ£¬·½·¨ÉùÃ÷Ò²Ò»Ñù£º 
    byte f(int n)[ ]; 
    byte [ ] f(int n); 
    ÔËÐÐʱ¼ì²éϱ걣֤ËüÃÇÊǺϷ¨µÄ£º 
    int a[ ]=new int [10]; 
    a[5]=1; 
    a[1]=a[0]+a[2]; 
a[-1]=4; // ÔËÐÐʱÒý·¢Ò»¸öArrayIndexOutOfBoundsException(Êý×éÏ 
±êÔ½½ç)Òì³£ 
a[10]=2; //ÔËÐÐʱÒý·¢Ò»¸öArrayIndexOutOfBoundsException(Êý×éÏ 
±êÔ½½ç)Òì³£ 
 
    Êý×éµÄ´óС±ØÐëʹÓÃÕûÊý±í´ïʽ£º 
    int n; 
    float arr[ ]=new float[n+1] 
    Êý×éµÄ³¤¶È¿Éͨ¹ý.length ²éÕÒ£º 
    int a[] []=new int [10][3]; 
    println (a.length)     //´òÓ¡³ö10 
    println (a[0].length)  //´òÓ¡³ö3¡£ 
 
3.3.1  Êý×éϸ½Ú 
ÎÒÃÇËù¶¨ÒåµÄÊý×é¶¼ÊÇObjectÀàµÄÒ»¸ö×ÓÀàµÄʵÀý£¬ÔÚÀàµÄ²ã´Î½á 
¹¹ÖÐÓÐÒ»¸ö±»³ÆÎªArrayµÄ×ÓÀ࣬ËüÓÐÒ»¸öʵÀý±äÁ¿¡°length¡±¡£¶Ôÿ 
Ò»¸ö»ù±¾ÀàÐÍ£¬¶¼ÓÐÒ»¸öÏàÓ¦µÄArrayµÄ×ÓÀࡣͬÀí£¬Ã¿Ò»¸öÀàÒ²¶¼ÓР
Ò»¸öÏàÓ¦µÄArray×ÓÀà´æÔÚ¡£ÀýÈ磺   new Thread[n]  ´´½¨Ò»¸öThread[ ] 
µÄʵÀý¡£Èç¹ûÀàAÊÇÀàBµÄ³¬À࣬ÄÇô£¬A[]ÊÇB[]µÄ³¬À࣬¼ûÏÂͼ£º 
 
            Object  
  
   Array                  A 
 
int[]  float[]  A[]            B 
 
             B[] 
 
    Òò´Ë£¬¿ÉÒÔ°ÑÊý×鸳¸øÒ»¸öObject±äÁ¿¡£ 
    Object  o; 
    int a[]=new int [10]; 
    o=a; 
    ²¢ÇÒ¿Éͨ¹ýÇ¿ÖÆÀàÐÍת»»°Ñobject±äÁ¿¸³¸øÒ»Êý×é±äÁ¿¡£ 
    a=(int [])o; 
    ArrayÀà±¾Éí²»ÄÜÏÔʽµØ²úÉú×ÓÀà¡£ 
 
4. Àà 
Àà(class)ÊÇ´«Í³ÃæÏò¶ÔÏó±à³ÌÄ£Ð͵ÄÏóÕ÷¡£ËüÃÇÖ§³ÖÊý¾Ý³éÏóÒÔ¼°Êµ 
ÏÖ¶ÔÊý¾ÝµÄÔ¼Êø£¬ÔÚJavaÖУ¬Ã¿Ò»¸öеÄÀà´´½¨Ò»¸öÐÂÀàÐÍ¡£ 
ÒªÏëµÃµ½Ò»¸öеÄÀ࣬³ÌÐòÔ±±ØÐëÊ×ÏÈÕÒµ½Ò»¸öÒÑÓеÄÀ࣬ÐÂÀ༴ 
ÔÚÕâ¸öÒÑÓÐÀàµÄ»ù´¡ÉϹ¹Ô죬ÎÒÃdzÆÖ®ÎªÅÉÉú(derived)¡£ÅÉÉú³öµÄÀàÒà³Æ 
ΪԭÀ´ÀàµÄ×ÓÀ࣬¶øÕâ¸öÀàÎÒÃdzÆÎª³¬Àà(super class)¡£ 
ÀàµÄÅÉÉú¾ßÓд«µÝÐÔ£º Èç¹ûBÊÇAµÄ×ÓÀ࣬CÊÇBµÄ×ÓÀ࣬ÔòC 
ÊÇAµÄ×ÓÀà¡£ 
Ò»¸öÀàµÄÖ±½Ó³¬ÀàÒÔ¼°Ö¸Ê¾Õâ¸öÀàÈçºÎʵÏֵĽçÃæ(interface)£¬ÔÚÀà 
µÄÉùÃ÷ÖУ¬Óɹؼü×Öextends¼°implements±ê³ö¡£ÈçÏÂʾ(ºÚÌå±íʾ¹Ø¼ü×Ö)£º£º 
    [doc_ comment]  [modifer]  class ClassName 
    extends  Superclassname 
    implements  interface {£¬interface } ] { 
          class body 
    } 
    ¾ÙÀý£º 
    /** 2 dimension point */ 
    public class Points { 
         float x£¬y; 
         ...... 
    } 
    /** printable point */ 
   class PinttablePoint extends Points implements Printable { 
        ...... 
        public void Print ( ) { 
        } 
    } 
ËùÓеÄÀà¾ù´ÓÒ»¸ö¸ùÀà ObjectÖÐÅÉÉú³öÀ´¡£³ýObjectÖ®ÍâµÄÈκÎÀà 
¶¼ÓÐÒ»¸öÖ±½Ó³¬Àà¡£Èç¹ûÒ»¸öÀàÔÚÉùÃ÷ʱδָÃ÷ÆäÖ±½Ó³¬À࣬ÄÇôȱʡ 
¼´ÎªObject¡£ÈçÏÂÊö£º 
    class Point { 
        float x£¬y 
    } 
    ÓëÏÂÃæÐ´·¨µÈ¼Û 
    class Point extends Object { 
         float  x£¬  y£» 
    } 
JavaÓïÑÔ½öÖ§³Öµ¥¼Ì³Ð£¬Í¨¹ýÒ»¸ö±»³Æ×÷¡°½çÃæ¡±µÄ»úÖÆ£¬À´Ö§³Ö 
ijЩÔÚÆäËüÓïÑÔÖÐÓöà¼Ì³ÐʵÏֵĻúÖÆ(Ïê¼û¡°½çÃæ¡±Ò»½Ú)¡£JavaÖ®Ëù 
ÒÔûÓвÉÓÃC++µÄ¶à¼Ì³Ð»úÖÆ£¬ÊÇΪÁ˱ÜÃâ¶à¼Ì³Ð´øÀ´µÄÖî¶à²»±ã£¬Àý 
È磺¿ÉÄܲúÉúµÄ¶þÒåÐÔ£¬±àÒëÆ÷¸ü¼Ó¸´ÔÓ£¬³ÌÐòÄÑÒÔÓÅ»¯µÈÎÊÌâ¡£ 
 
4.1 ÀàÀàÐÍÖ®¼äµÄÇ¿ÖÆ×ª»» 
JavaÓïÑÔÖ§³ÖÔÚÁ½¸öÀàÐÍÖ®¼äµÄÇ¿ÖÆ×ª»»£¬ÒòΪÿ¸öÀ༴ÊÇÒ»¸öР
µÄÀàÐÍ¡£JavaÖ§³ÖÀàÀàÐÍÖ®¼äµÄÇ¿ÖÆ×ª»»£¬Èç¹ûBÊÇAµÄ×ÓÀ࣬ÄÇôB 
µÄÒ»¸öʵÀýÒà¿É×÷ΪAµÄʵÀýÀ´Ê¹Óã¬ËäÈ»²»ÐèÒªÏÔʽµÄת»»£¬µ«ÏÔʽ 
ת»»ÒàÊǺϷ¨µÄ£¬Õâ±»³Æ×÷ÍØ¿í(widening)¡£Èç¹ûAµÄÒ»¸öʵÀý£¬Ïëµ±×÷ 
BµÄʵÀýʹÓ㬳ÌÐòÔ±¾ÍӦдһ¸öÀàÐÍת»»½Ð×÷Ï÷Õ­£¨narrowing£©µÄÇ¿ 
ÖÆ¡£´ÓÒ»¸öÀൽÆä×ÓÀàµÄÇ¿ÖÆ×ª 
»»ÔÚÔËÐÐʱҪ×÷ÀýÐеļì²éÒÔÈ·±£Õâ¸ö¶ÔÏó¾ÍÊÇÆä×ÓÀàµÄÒ»¸öʵÀý 
(»òÆä×ÓÀàÖ®Ò»)¡£ÐÖµÜÀàÖ®¼äµÄÇ¿ÖÆÀàÐÍת»»ÊÇÒ»¸ö±àÒë´íÎó£¬ÀàµÄÇ¿ÖÆ×ª»»µÄÓï·¨ÈçÏ£ 
º 
    (classname) ref 
    ÆäÖУ¬(classname)ÊÇҪת»»µÄÄ¿µÄÀ࣬¶ørefÊDZ»×ª»»µÄ¶ÔÏó¡£ 
Ç¿ÖÆ×ª»»½ö½öÓ°Ïìµ½¶ÔÏóµÄÒýÓ㬶ø²»»áÓ°Ïì¶ÔÏó±¾Éí¡£È»¶ø£¬¶ÔʵÀý 
±äÁ¿µÄ·ÃÎÊÈ´Êܵ½¶ÔÏó 
ÒýÓõÄÀàÐ͵ÄÓ°Ïì¡£Ò»¸ö¶ÔÏó´ÓÒ»¸öÀàÐ͵½ÁíÒ»ÀàÐ͵ÄÇ¿ÖÆ×ª»»ºó£¬ 
¿ÉÒÔʹͬһ±äÁ¿Ãû¶Ô²»Í¬µÄʵÀý±äÁ¿·ÃÎÊ¡£ 
    class   ClassA{ 
           String  name = "ClassA" 
    } 
    class ClassB  extends  ClassA {           //ClassBÊÇClassAµÄ×ÓÀà 
         String name="ClassB"; 
    } 
    class AccessTest { 
        void test( ) { 
            ClassB  b=new ClassB( ); 
            println (b.name);                //´òÓ¡£º ClassB 
            ClassA  a 
            a=(ClassA)b; 
            println (a.name);               //´òÓ¡£º ClassA 
        } 
    } 
 
4.2 ·½·¨ 
·½·¨(method)ÊÇ¿ÉÊ©ÓÚ¶ÔÏó»òÀàÉϵIJÙ×÷£¬ËüÃǼȿÉÔÚÀàÖУ¬Ò²¿ÉÔÚ 
½çÃæÖÐÉùÃ÷¡£µ«ÊÇËûÃÇÈ´Ö»ÄÜÔÚÀàÖÐʵÏÖ(JavaÖÐËùÓÐÓû§¶¨ÒåµÄ²Ù×÷¾ù 
Ó÷½·¨À´ÊµÏÖ)¡£ 
    ÀàÖеķ½·¨ÉùÃ÷°´ÒÔÏ·½Ê½£º  
    [Doc_ comment]  [Access Specifiers]  ReturnType  methodName(parameterList)  

                method body(±¾µØµÄnative¼°³éÏóµÄ·½·¨Ã»ÓÐÌ岿·Ö) 
    } 
     
³ý¹¹Ô캯Êý¿ÉÒÔÎÞ·µ»ØÀàÐÍÍ⣬ÆäÓàµÄ·½·¨¶¼ÓÐÒ»¸ö·µ»ØÀàÐÍ¡£Èç 
¹ûÒ»¸ö²»Êǹ¹Ô캯ÊýµÄ·½·¨²»·µ»ØÈκÎÖµ£¬ÄÇôËü±ØÐëÓÐÒ»¸övoidµÄ·µ 
»ØÀàÐÍ¡£ 
²ÎÊý±íÓɶººÅ·Ö¸ôµÄ³É¶ÔµÄÀàÐͼ°²ÎÊýÃû×é³É£¬Èç¹û·½·¨ÎÞ²ÎÊý£¬ 
Ôò²ÎÊý±íΪ¿Õ¡£·½·¨ÄÚ²¿¶¨ÒåµÄ±äÁ¿(¾Ö²¿±äÁ¿)²»ÄÜÒþ²ØÍ¬Ò»·½·¨µÄÆä 
Ëü±äÁ¿»ò²ÎÊý¡£ÀýÈ磺 Èç¹ûÒ»¸ö·½·¨´øÒÔÃûΪiµÄ²ÎÊýʵÏÖ£¬ÇÒ·½·¨ÄÚ 
ÓÖ¶¨ÒåÒ»¸öÃûΪiµÄ¾Ö²¿±äÁ¿£¬Ôò»á²úÉú±àÒë´íÎó£¬ÀýÈ磺 
    class Rectangle { 
         void vertex (int i£¬int j)  { 
             for (int i=0; i<=100; i++)  {         //³ö´í 
             ¡­  
             } 
         } 
    } 
    ·½·¨ÌåÄÚÑ­»·Óï¾äÖÐÉùÃ÷µÄiÊÇÒ»¸ö±àÒë´íÎó¡£ 
 
JavaÓïÑÔÔÊÐí¶à̬·½·¨ÃüÃû£¬¼´ÓÃÒ»¸öÃû×ÖÉùÃ÷·½·¨£¬Õâ¸öÃû×ÖÒÑ 
ÔÚÕâ¸öÀà»òÆä³¬ÀàÖÐʹÓùý£¬´Ó¶øÊµÏÖ·½·¨µÄ¸²¸Ç(overriding)¼°ÖØÔØ 
(overloadding)¡£Ëùν¸²¸ÇÊǶԼ̳ÐÀ´µÄ·½·¨ÌṩÁíÒ»ÖÖ²»Í¬µÄʵÏÖ¡£¶ø 
ÖØÔØÊÇÖ¸ÉùÃ÷Ò»¸ö·½·¨£¬ËüÓëÁíÍâÒ»¸ö·½·¨ÓÐÏàͬµÄÃû×Ö£¬µ«²ÎÊý±í²»Í¬¡£ 
×¢£º ·µ»ØÀàÐͲ»ÄÜÓÃÀ´Çø±ð·½·¨£¬¼´ÔÚÒ»¸öÀàµÄ·¶Î§ÄÚ£¬¾ßÓÐÏàͬ 
µÄÃû×Ö£¬ÏàͬµÄ²ÎÊý±í(°üÀ¨¸öÊý¡¢Î»Öü°ÀàÐÍ)µÄ·½·¨£¬±ØÐë·µ»ØÏàͬ 
µÄÀàÐÍ¡£ÈôÕâÑùµÄÁ½¸ö·½·¨Óв»Í¬µÄ·µ»ØÀàÐÍ£¬½«»á²úÉúÒ»¸ö±àÒë´íÎó¡£ 
 
 
4.2.1 ÊµÀý±äÁ¿ 
ʵÀý±äÁ¿(instance variables)ÊÇÖ¸ÄÇЩÔÚÀàÄÚÉùÃ÷£¬µ«ÔÚ·½·¨µÄ×÷Óà
ÓòÖ®ÍâÉÐδ±»static±ê¼ÇµÄ±ä( ²ÎÕÕ ¡°¾²Ì¬·½·¨£¬±äÁ¿¼°³õʼ»¯¡±¶Î)¡£ 
¶øÔÚÒ»¸ö·½·¨µÄ×÷ÓÃÓòÖ®ÄÚÉùÃ÷µÄ±äÁ¿ÊǾֲ¿±äÁ¿¡£ÊµÀý±äÁ¿¿ÉÒÔÓÐÐÞ 
Êηû(¼ûÐÞÊηû)¡£ 
ʵÀý±äÁ¿¿ÉÒÔÊÇÈκεÄÀàÐÍ£¬²¢ÇÒ¿ÉÒÔÓгõʼֵ¡£Èç¹ûÒ»¸öʵÀý±ä 
Á¿ÎÞ³õʼֵ£¬Ëü½«±»³õʼ»¯³É0¡£²¼¶ûÐͱäÁ¿±»³õʼ»¯³Éflase£¬¶ÔÏó±» 
³õʼ»¯³Énull¡£ÏÂÃæÊÇÒ»¸öʵÀý±äÁ¿j¾ßÓгõʼ»¯ÖµµÄÀý×Ó£º 
    class A{ 
      int j =23; 
       ¡­¡­ 
    } 
 
4.2.2  this ºÍsuper±äÁ¿ 
ÔÚÒ»¸ö·Ç¾²Ì¬·½·¨µÄ×÷ÓÃÓòÄÚ£¬thisÕâ¸öÃû×Ö´ú±íÁ˵±Ç°¶ÔÏó¡£Àý 
È磺 Ò»¸ö¶ÔÏó¿ÉÄÜÐèÒª°Ñ×Ô¼º×÷Ϊ²ÎÊý´«¸øÁíÒ»¸ö¶ÔÏóµÄ·½·¨£º 
    class MyClass { 
         void Method (OtherClass obj) { 
             ¡­ 
             obj.Method (this) 
              ¡­ 
         } 
    } 
     ²»ÂÛºÎʱ£¬Ò»¸ö·½·¨ÒýÓÃËü×Ô¼ºµÄʵÀý±äÁ¿¼°·½·¨Ê±£¬ÔÚÿ¸öÒýÓà
µÄÇ°Ãæ¶¼Òþº¬×Å¡°this¡±¡£ 
È磺 
    class Foo { 
        int a£¬b£¬c; 
        ...... 
        void myPrint ( ) { 
            print (a+ "\n");           //  a=="this.a" 
        } 
        ...... 
     } 
     super±äÁ¿ÀàËÆÓÚthis±äÁ¿¡£this±äÁ¿Êµ¼ÊÉÏÊǶԵ±Ç°¶ÔÏóµÄÒýÓ㬠
ËüµÄÀàÐ;ÍÊǰüº¬µ±Ç°ÕýÔÚ´¦ÀíµÄ·½·¨µÄÀà¡£¶øsuper±äÁ¿ÔòÊÇ¶ÔÆä³¬Àà 
ÀàÐͶÔÏóµÄÒýÓᣠ
 
 
4.2.3 ÉèÖþֲ¿±äÁ¿ 
·½·¨¶¼Òª¾­¹ýÑϸñµÄ¼ì²é£¬ÒÔÈ·±£ËùÓеľֲ¿±äÁ¿(ÔÚ·½·¨ÄÚÉùÃ÷µÄ 
±äÁ¿)ÔÚ±»ÒýÓÃ֮ǰÒÑÉè³õ£¬±»³õʼ»¯Ö®Ç°¾ÍʹÓþֲ¿±äÁ¿ÊÇÒ»¸ö±àÒë´í 
Îó¡£ 
 
4.3 ¸²¸Ç·½·¨ 
ÒªÏ븲¸Ç(overiding)Ò»¸ö·½·¨£¬±ØÐëÔÚÉùÃ÷Õâ¸ö·½·¨µÄÀàµÄ×ÓÀàÖÐÉù 
Ã÷Ò»¸öÓëËü¾ßÓÐÏàͬÃû×Ö£¬Ïàͬ·µ»ØÀàÐÍ£¬ÒÔ¼°Ïàͬ²ÎÊý±íµÄ·½·¨¡£µ± 
×ÓÀàµÄʵÀýµ÷ÓÃÕâ¸ö·½·¨Ê±£¬±»µ÷ÓõÄÊÇж¨ÒåµÄ·½·¨¶ø²»ÊÇ×î³õµÄÄÇ 
¸ö¡£±»¸²¸ÇÁ˵ķ½·¨¿Éͨ¹ýsuper±äÁ¿À´µ÷Óã¬ÈçÏ£º 
    setThermostat(¡­)              //Ö¸¸²¸ÇµÄ·½·¨ 
    super. setThermostat(¡­)        //Ö¸±»¸²¸ÇµÄ·½·¨ 
 
4.4 ÖØÔصÄÈ϶¨ 
ÖØÔØ(overload)µÄ·½·¨ÓëÒÑÓеÄij¸ö·½·¨Í¬Ãû£¬µ«ÊDZäÔªµÄ¸öÊý¼°/ 
»òÀàÐͲ»Í¬£¬ÖØÔصÄÈ϶¨ÊÇÒª¾ö¶¨µ÷ÓõÄÊÇÄÄÒ»¸ö·½·¨£¬ÔÚÈ϶¨ÖØÔصĠ
·½·¨Ê±£¬²»¿¼ÂÇ·µ»ØÀàÐÍ¡£·½·¨¿ÉÒÔÔÚͬһÀàµÄÄÚ²¿ÖØÔØ£¬ÀàÄÚ²¿·½·¨ 
ÉùÃ÷µÄ˳Ðò²¢²»ÖØÒª¡£ 
¿Éͬʱ¸Ä±ä±äÔª¸öÊýºÍÀàÐÍÀ´ÊµÏÖ·½·¨µÄÖØÔØ¡£ ±àÒëÆ÷È϶¨ÏàÆ¥Åä 
µÄ·½·¨Ê±ÒÔ×îµÍµÄÀàÐÍת»»¿ªÏúΪ׼¡£Ö»ÓоßÓÐÏàͬÃû×Ö¼°Ïàͬ±äÔª¸ö 
ÊýµÄ·½·¨²Å»áÓÅÏÈ¿¼ÂÇ¡£ËùÓбäÔª¶¼±ØÐëת»»£¬ÊÇÆ¥Åä·½·¨Ê±µÄ×î´ó¿ª 
Ïú¡£ÓÐÁ½ÖÖ±äÔªÀàÐÍÊDZØÐ迼Âǵģº¶ÔÏóÀàÐͺͻù±¾ÀàÐÍ¡£ 
¶ÔÏóÀàÐͼäת»»µÄ¿ªÏúµÄ´óСָÀàÊ÷ÉÏʵÔÚ²ÎÊýµÄÀàÓëÔ­ÐͲÎÊýµÄ 
ÀàÖ®¼äÁ¬ÏߵĸöÊý¡£Ö»¿¼ÂÇÍØ¿íÐÍת»»(¶ÔÏóÀàÐÍת»»µÄÏêϸÐÅÏ¢£¬Çë²Î 
ÔÄ¡°ÀàÖ®¼äµÄÇ¿ÖÆÀàÐÍת»»¡±)¡£¶ÔÓÚÀàÐÍÍêȫƥÅäµÄ±äÔª£¬ÎÞÐë½øÐÐת 
»»£¬ËüÃǵĿªÏúΪÁã¡£ 
 
    »ù±¾ÀàÐ͵Äת»»¿ªÏú°´ÏÂ±í¼ÆË㣬¿ªÏúΪÁãÊÇÑϸñÆ¥Åä¡£ 
                                to 
                 byte   short   char    int   long   float   double 
      byte         0     1              2         3     4      6      7 
      short        10     0      10    1     2      4      5 
from  char         11    10      0    1      2      4     5 
      int          12     11     11    0     1      5      4 
      long         12    11     11    10     0     6      5 
      float         15    14     13    12    11     0      1 
      double       16     15    14    13    12     10      0 
     
×¢£º¿ªÏú >=10 Ò×ÒýÆðÊý¾Ý¶ªÊ§¡£ 
 
Ò»¾­È϶¨Ä³Ò»Æ¥Åä·½·¨ÊÇÄÄÖÖת»»¿ªÏú£¬±àÒëÆ÷ÔòÑ¡ÓÃת»»¿ªÏú×î 
СµÄÆ¥Åä¡£Èç¹ûÓжàÓÚÒ»¸ö·½·¨£¬Æä×îС¿ªÏúÏàͬ£¬ÔòÆ¥ÅäÓжþÒåÐÔ£¬ 
Òª³ö±àÒëʱµÄ´íÎó¡£ 
    ÀýÈ磺 
    class  A{ 
         int  method (Object o, Thread t); 
         int  method(Thread t,Object o); 
         void  g(Object o,Thread t){ 
                  method(o,t);             //µ÷ÓõÚÒ»¸ö·½·¨   
                  method(t,o);             //µ÷Óõڶþ¸ö·½·¨ 
                  method(t,t);             //ÓжþÒåÐÔ£¬±àÒë³ö´í 
         £ý 
    £ý 
 
4.5  ¹¹Ô캯Êý 
¹¹Ô캯Êý(constructor)ÊÇÌṩ³õʼ»¯µÄרÓ÷½·¨¡£ËüºÍÀàµÄÃû×ÖÏàͬ£¬ 
µ«Ã»ÓÐÈκηµ»ØÀàÐÍ¡£¹¹Ô캯ÊýÔÚ¶ÔÏó´´½¨Ê±±»×Ô¶¯µØµ÷Óã¬Ëü²»Äܱ» 
¶ÔÏóÏÔʽµ÷Óá£Èç¹ûÄãÏëÔÚ°ü(package)Ö®Íâµ÷Óù¹Ô캯Êý£¬¾Í½«¹¹Ô캯 
ÊýÉèΪ¡°public¡±(²Î¼û¡°·ÃÎÊÖ¸Ã÷·û¡°Ò»½Ú)¡£ 
¹¹Ô캯ÊýÒ²¿ÉÒÔÓò»Í¬¸öÊýºÍÀàÐ͵IJÎÊýÖØÔØ£¬¾ÍÏóÆäËüµÄ·½·¨±» 
ÖØÔØÒ»Ñù¡£ 
    class Foo  { 
        int    x; 
        float  y; 
        Foo() { 
           x=0;  
           y=0.0; 
        } 
        Foo (int a ) { 
           x=a; 
           y=0.0; 
        } 
        Foo (float a ) { 
            x=0; 
            y=a;  
        } 
       Foo (int a£¬float b ) { 
           x=a; 
           y=b; 
       }  
       static void myFoo( ) { 
            Foo obj1=new Foo( );          //µ÷ÓÃFoo( ); 
            Foo obj2=new Foo(4 );         //µ÷ÓÃFoo( int a ); 
            Foo obj3=new Foo(4.0 );        //µ÷ÓÃFoo( float a ); 
            Foo obj4=new Foo(4,4.0 );      //µ÷ÓÃFoo(int a £¬ float b ); 
       } 
    } 
³¬ÀàµÄʵÀý±äÁ¿Óɵ÷Óó¬ÀàµÄ»òµ±Ç°ÀàµÄ¹¹Ô캯Êý³õʼ»¯¡£Èç¹ûÔÚ 
´úÂëÖÐûÓÐÖ¸¶¨ÓÉË­³õʼ»¯£¬Ôòµ÷ÓõÄÊdz¬ÀàÖеÄÎÞ²ÎÊýµÄ¹¹Ô캯Êý¡£ 
Èç¹ûÒ»¸ö¹¹Ô캯Êýµ÷ÓÃÁËÕâ¸öÀà»òÆäÖ±½Ó³¬ÀàµÄÁíÒ»¸ö¹¹Ô캯Êý£¬Õâ¸ö 
µ÷ÓñØÐëÊǹ¹Ô캯ÊýÌåµÄµÚÒ»ÌõÓï¾ä£¬ÔÚµ÷Óù¹Ô캯Êý֮ǰʵÀý±äÁ¿²» 
ÒýÓᣠ
 
    µ÷ÓÃÖ±½Ó³¬ÀàµÄ¹¹Ô캯ÊýÈçÏ£º 
    class  MyClass extends OtherClass  { 
          MyClass (someParamenters ) { 
               /* µ÷Óø¸À๹Ô캯Êý */ 
              super(otherParameters); 
          }  ¡­ 
    }¡­ 
    µ÷Óõ±Ç°ÀàµÄ¹¹Ô캯ÊýÈçÏÂʾ£º 
    class MyClass extends OtherClass  { 
        MyClass (someParameters) { 
                 ¡­ 
        }  
        MyClass(otherParameters) { 
             /*µ÷Óõ±Ç°ÀàµÄ¹¹Ô캯Êý£¬¸Ãº¯ÊýÓÐÖ¸¶¨µÄ²ÎÊý±í*/ 
             this (someParameters); 
             ¡­ 
       } 
       ¡­ 
     } 
    ÏÂÃæµÄFooºÍFooSubÀàµÄ·½·¨ÖÐʹÓù¹Ô캯ÊýµÄÀý×Ó£º 
     class Foo extends Bar { 
          int a; 
          Foo(int a) { 
              //Òþº¬µ÷ÓÃBar( ) 
              this.a=a; 
          } 
          Foo( ) { 
              this (42);  //µ÷ÓÃFoo(42)£¬´úÌæBar( ) 
          } 
      } 
      class FooSub extends Foo { 
           int b; 
           FooSub (int b) { 
              super(13);          //µ÷ÓÃFoo(13); È¥µô´ËÐн«µ÷ÓÃFoo( ) 
              this.b=b; 
           }   
       } 
 
4.6 ÓÃnewÔËËã·û´´½¨¶ÔÏó 
ÀàÊÇÓÃÀ´¶¨Òå¶ÔÏóµÄ״̬ºÍÐÐΪµÄÄ£°å£¬¶ÔÏóÊÇÀàµÄʵÀý¡£ÀàµÄËù 
ÓÐʵÀý¶¼·ÖÅäÔÚ¿É×÷ÎÞÓõ¥Ôª»ØÊյĶÑÖС£ÉùÃ÷Ò»¸ö¶ÔÏóÒýÓò¢²»»áΪ 
¸Ã¶ÔÏó·ÖÅä´æ´¢£¬³ÌÐòÔ±±ØÐëÏÔʽµØÎª¶ÔÏó·ÖÅä´æ´¢£¬µ«²»±ØÏÔʽɾ³ý 
´æ´¢£¬ÎÞÓõ¥Ôª»ØÊÕÆ÷»á×Ô¶¯»ØÊÕÎÞÓõÄÄÚ´æ¡£ 
·ÖÅä¶ÔÏó´æ´¢ÓÃnewÔËËã·û¡£³ýÁË·ÖÅä´æ´¢Ö®Í⣬new»¹³õʼ»¯Êµ 
Àý±äÁ¿£¬µ÷ÓÃʵÀýµÄ¹¹Ô캯Êý¡£¹¹Ô캯ÊýÊdzõʼ»¯¶ÔÏóµÄÒ»ÖÖ·½·¨(¼û¡°¹¹ 
Ô캯Êý¡±)£¬ÏÂÃæµÄÀý×ÓÊÇ·ÖÅä²¢³õʼ»¯ClassAµÄÒ»¸öʵÀý£º 
    a = new ClassA( ); 
    ÒÔϹ¹Ô캯ÊýÊÇ´øÓвÎÊýµÄÀý×Ó£º 
    b = new ClassA(3,2); 
·ÖÅäµÄµÚÈýÖÖÐÎʽÔÊÐíÒÔ´®±í´ïʽÐÎʽÌṩÀàÃû×Ö£¬×Ö·û´®ÔÚÔËÐР
ʱ¿ÌÇóÖµ£¬new·µ»ØÒ»¸öObjectÀàÐ͵ĶÔÏó£¬ÔÙת»»³ÉËùÏ£ÍûµÄÀàÐÍ¡£ 
    b = new ("class"+"A"); 
    ÕâÖÖÇé¿öÏ£¬µ÷Óù¹Ô캯ÊýʱÎÞÐè²ÎÊý¡£ 
 
4.6.1 ÎÞÓõ¥ÔªÊÕ¼¯ 
ÎÞÓõ¥ÔªÊÕ¼¯Æ÷(Garbage Collector)ʹ´æ´¢¹ÜÀíµÄÐí¶à·½Ãæ±äµÃ¼ò 
µ¥¡¢°²È«¡£³ÌÐò²»ÐèÒªÏÔʽÊÍ·ÅÄڴ棬ËüÊÇ×Ô¶¯´¦ÀíµÄ¡£ÎÞÓõ¥ÔªÊÕ¼¯ 
Æ÷²»»áÊÍ·ÅÕýÔÚ±»ÒýÓõÄÄڴ棬ֻÊÍ·ÅÄÇЩ²»ÔÙ±»ÒýÓõĿռ䡣Õâ¾Í·À 
Ö¹ÁËÐü¹ÒÖ¸ÕëºÍ´æ´¢Â©¶´(leak)¡£ËüҲʹÉè¼ÆÈËÔ±´ÓϵͳµÄ´æ´¢¹ÜÀíÖнâ 
ÍѳöÀ´¡£ 
 
4.6.2ÖÕÖ¹ 
JavaµÄ¹¹Ô캯ÊýÍê³ÉÒ»¸ö¶ÔÏó³õʼ»¯¹¤×÷£¬JavaµÄÖÕÖ¹ 
(finalization)·½·¨ÔòÍê³ÉºÍÎö¹¹º¯ÊýÀàËÆµÄ¹¦ÄÜ£¬µ«ÓëC++²»Í¬Ö®´¦£¬ÊÇ 
Ëü¿ÉÏÔʽµ÷Óá£ËäÈ»JavaµÄÎÞÓõ¥ÔªµÄ»ØÊÕ¹¦ÄÜ¿ÉÒÔ×Ô¶¯µØÊͷŶÔÏóËù 
Õ¼ÓеÄ×ÊÔ´£¬µ«ÊǶÔÏóÕ¼ÓеÄijЩ×ÊÔ´£¬ÀýÈ磺 ÎļþÃèÊö·û¡¢Ì×½Ó×Ö 
(socket)£¬ÎÞÓõ¥Ôª»ØÊÕÊÇÎÞ·¨´¦ÀíµÄ¡£ËùÒÔ³ÌÐòÔ±±ØÐëÓÃÖÕÖ¹º¯ÊýÀ´´¦ 
Àí¡£ÖîÈ磺¹Ø±Õ´ò¿ªµÄÎļþ£¬ÖÕÖ¹ÍøÂçÁ¬½ÓµÈ³ÌÐòÉÆºó¹¤×÷¡£ 
ÏÂÃæµÄÀý×ÓÊÇÈ¡×ÔJava FileOutpntStreamÀàÖеÄÖÕÖ¹º¯Êý¡£Õâ¸öÖÕÖ¹ 
º¯ÊýÊÇÒ»¸öʵÀýµÄ·½·¨£¬Ã»ÓвÎÊý£¬Ò²ÎÞ·µ»ØÖµ£¬Ãû×Ö±ØÐëÈ¡finalize()¡£ 
ÕâÀïÎÒÃÇӦעÒâËüºÍC++Îö¹¹º¯ÊýµÄÇø±ð£º 
/** 
* closes the stream when garbage is collected 
* checks the file descriptor first to make sure it  
* is not already closed. 
*/ 
protected void finalize( ) throws IOException { 
    if (fd!=null) close(); 

    ÏÂÃæÊǹØÓÚÖÕÖ¹º¯ÊýµÄ¼¸µã×¢ÒâÊÂÏ 
* Èç¹ûÒ»¸ö¶ÔÏóº¬ÓÐÖÕÖ¹º¯Êý£¬ÄÇôÕâ¸ö·½·¨£¬ÔÚϵͳÊÕ¼¯¸Ã¶ÔÏóËùÕ¼ 
ÄÚ´æÖ®Ç°±»µ÷Óᣠ
* Java½âÊÍÆ÷¿ÉÄÜÔÚûÓÐÍê³ÉÎÞÓõ¥ÔªÊÕ¼¯µÄÇé¿öÏÂÍ˳ö£¬ÄÇôijЩÖÕ 
Ö¹º¯Êý²»¿ÉÄܱ»µ÷Óá£ÔÚÕâÖÖÇé¿öÏ£¬Î´ÊͷŵÄ×ÊԴͨ³£ÓɲÙ×÷ϵͳÀ´ 
´¦Àí¡£ 
* JavaµÄÎÞÓõ¥ÔªµÄÊÕ¼¯·¢ÉúµÄʱ¿ÌÊDz»È·¶¨µÄ£¬Òò´Ë£¬JavaÎÞ·¨±£Ö¤ 
ÔÚºÎʱµ÷ÓÃÖÕÖ¹º¯Êý¡¢ÖÕÖ¹º¯ÊýµÄµ÷ÓôÎÐò¡¢ÒÔ¼°ÓÉÄÄÒ»¸öÏß³ÌÖ´ÐÐÖÕ 
Ö¹º¯Êý¡£ 
* ÔÚÖÕÖ¹º¯Êý±»µ÷ÓÃʱ£¬¶ÔÏó»á²»Á¢¿Ì±»»ØÊÕ¡£ÒòΪÖÕÖ¹º¯ÊýҪʹÓöԠ
ÏóµÄthisÖ¸Õë×öijЩ´¦Àí£¬Òâζ×ŶÔÏóÓÖ±»ÒýÓÃÁË¡£Ö»ÓÐÔÚfinalize()Ö´ 
ÐÐÖ®ºó£¬ÎÞÓõ¥ÔªÊÕ¼¯³ÌÐò²ÅÓпÉÄÜ´¦Àí¸Ã¶ÔÏó¡£ 
* ÉÏÃæÀý×ÓÖУ¬ÖÕÖ¹º¯Êý¿ÉÒÔÒý·¢Ò»¸öÒì³£¡£µ«ÊÇÈç¹ûÔÚÖÕÖ¹º¯ÊýÖз¢ 
ÉúÁËÆäËüÒì³££¬½«±»ÏµÍ³ºö¡£ 
 
4.6.3   nullÒýÓà
¹Ø¼ü×ÖnullÊÇÒ»¸öÔ¤¶¨ÒåµÄ³£Á¿£¬±íʾ¡°ÎÞʵÀý¡±¡£null¿ÉÒÔÓÃÔÚ 
ʵÀýÄܹ»³öÏÖµÄÈκεط½£¬¿ÉÒÔ±»×ª»»³ÉÈκÎÀàÀàÐÍ¡£ 
 
4.7 ¾²Ì¬·½·¨£¬±äÁ¿ºÍ³õʼ»¯ 
±äÁ¿ºÍ·½·¨¶¼¿ÉÒÔÉùÃ÷Ϊ¾²Ì¬£¨static£©µÄ£¬ÕâÑùËüÃÇÖ»ÄÜÓÃÓÚÀà±¾ 
Éí£¬¶ø²»ÊÇÀàµÄʵÀý¡£´ËÍ⣬ÀඨÒåÖеÄÒ»¿é´úÂëÒ²¿ÉÒÔÉùÃ÷Ϊ¾²Ì¬µÄ¡£ 
ÕâÑùµÄ³ÌÐò¿é½Ð×ö¾²Ì¬³õʼ»¯¶Î¡£ 
¾²Ì¬±äÁ¿¿ÉÒÔÓгõÖµ£¬¾ÍÏóʵÀý±äÁ¿Ò»Ñù£¬£¨²Î¼ûµÄ¡°³õʼ»¯Ë³Ðò¡±£©¡£ 
¾²Ì¬±äÁ¿Ö»ÔÚÀàÖгöÏÖÒ»´Î£¬¶ø²»ÂÛÕâ¸öÀàÓжàÉÙ¸öʵÀý¡£¾²Ì¬±äÁ¿ºÍ 
·½·¨¶¼ÊÇͨ¹ýÀàÃû×ÖÀ´·ÃÎʵġ£Îª·½±ãÆð¼û£¬Ò²¿ÉÒÔÓÃÀàʵÀýÀ´·ÃÎÊ¡£ 
    class Ahem { 
        int i;        //ʵÀý±äÁ¿ 
        static int j;   //¾²Ì¬±äÁ¿ 
        static int arr[ ] = new  int[12]; 
        static {              //¾²Ì¬³õʼ³ÉÔ±£¬³õʼ»¯Êý×é 
             for (int i =0; i ¡´arr. length; i++) { 
                arr[i] =i; 
             } 
       } 
       void seti(int i) {                       //ʵÀý·½·¨ 
           this.i =i; 
       } 
       static void setj (int j) {                  //¾²Ì¬·½·¨ 
            Ahem.j=j; 
       } 
      static void clearThroat( ) { 
         Ahem a = new Ahem (); 
         Ahem.j=2;                //ÓÐЧ£º Í¨¹ýÀà·ÃÎʾ²Ì¬±äÁ¿ 
         a.j =3;                  //ÓÐЧ£º Í¨¹ýʵÀý·ÃÎʾ²Ì¬±äÁ¿ 
         Ahem.setj(2);             //ÓÐЧ£º Í¨¹ýÀà·ÃÎʾ²Ì¬·½·¨ 
         a.setj(3);                //ÓÐЧ£º Í¨¹ýʵÀý·ÃÎʾ²Ì¬·½·¨ 
         a.i=4;                  //ÓÐЧ£º Í¨¹ýʵÀý·ÃÎÊʵÀý±äÁ¿ 
         Ahem.i=5;               //´íÎ󣺠ͨ¹ýÀà·ÃÎÊʵÀý±äÁ¿ 
         a.seti(a);                //ÓÐЧ£º Í¨¹ýʵÀý·ÃÎÊʵÀý·½·¨ 
         Ahem.seti(5);            //´íÎ󣺠ͨ¹ýÀà·ÃÎÊʵÀý·½·¨ 
       } 
     } 
 
7.1 ÉùÃ÷µÄ˳Ðò 
ÀàºÍËüµÄ·½·¨ÒÔ¼°ÊµÀý±äÁ¿ÉùÃ÷µÄ´ÎÐò²¢²»ÖØÒª£¬µ«Êdzõʼ»¯Ê±Ñ­ 
»·ÒÀÀµÊÇ´æÔڵġ£Óйسõʼ»¯Ê±Ñ­»·ÒÀÀµµÄÐÅÏ¢²Î¼û¡°³õʼ»¯Ë³Ðò¡±Ò» 
½Ú¡£·½·¨¿ÉÒÔ×ÔÓÉÏòǰÒýÓÃÆäËüµÄ·½·¨ºÍʵÀý±äÁ¿¡£ÒÔÏÂÀý×ÓÊǺϷ¨µÄ£º 
    class A  { 
         void  a () { 
               f.set(42); 
         } 
         B  f; 
    } 
    class B { 
         void set (long n) { 
             this .n=n;  
         } 
         long n; 
    } 
 
4.7.2 ³õʼ»¯Ë³Ðò 
¼ÓÔØÒ»¸öÀàʱ£¬ËüµÄ¾²Ì¬³õʼ»¯´úÂë±»Ö´ÐС£¾²Ì¬³õʼ»¯´úÂë¶ÎÓë 
¾²Ì¬±äÁ¿³õʼ»¯Í¬Ê±½øÐР¡£ËüÃǰ´´Ê·¨Ë³ÐòÖ´ÐС£ÀýÈ磬һ¸öÀàCÉù 
Ã÷ÈçÏ£º 
    class C { 
         static int a=1; 
         static { 
             a++; 
             b=7; 
         } 
         static int b=2; 
    } 
    µ±C±»¼ÓÔØÊ±£¬°´ÒÔÏÂ˳ÐòÖ´ÐУº 
    * aÖÃΪ1¡£ 
    * ¾²Ì¬³õʼ»¯¶ÎÖ´ÐУ¬aÖÃΪ2£¬bÖÃΪ7¡£ 
    * bÖÃΪ2¡£ 
Èç¹û¾²Ì¬³õʼ»¯´úÂëÒýÓÃÁËÆäËüµÄδ¼ÓÔØµÄÀ࣬Õâ¸öÀཫ±»¼ÓÔØ£¬ 
ËüµÄ¾²Ì¬³õʼ»¯´úÂ뽫ÏÈÖ´ÐС£ÔÚ¾²Ì¬³õʼ»¯ÆÚ¼äÒýÓÃδ¼ÓÔØµÄÀ࣬¸Ã 
ÀàÏȼÓÔØ²¢³õʼ»¯¡£ÔÚ³õʼ»¯ÐòÁÐÖУ¬ÈôÒýÓõ½ÔÚËü֮ǰµÄÒ»¸öδ³õʼ 
»¯µÄÀàʱ£¬¾Í»á·¢ÉúÑ­»·¡£Õ⽫µ¼ÖÂÒ»¸öNoClassDefFoundException´í 
Îó¡£ 
ÀýÈ磬µ±ÀàA¼ÓÔØÊ±£¬ËüµÄ¾²Ì¬³õʼ»¯´úÂë±»Ö´ÐС£µ«AµÄ¾²Ì¬³õ 
ʼ»¯´úÂëÒýÓÃÁËÁíÒ»¸öδ¼ÓÔØµÄÀàB¡£ÕâÑùB½«±»¼ÓÔØ£¬ËüµÄ¾²Ì¬³õʼ 
»¯´úÂëÒªÔÚA֮ǰִÐС£AµÄ¾²Ì¬³õʼ»¯£¬ËæºóÖ´ÐС£µ«Èç¹ûBÖеľ² 
̬³õʼ»¯´úÂëÒýÓÃA£¬¾Íµ¼ÖÂÁËÑ­»·ÒýÓᣠ
ÈôʵÀý»ò¾²Ì¬±äÁ¿³õʼ»¯Ê±£¬´æÔÚǰÏòÒÀÀµ£¬Ôò³ö±àÒëʱ¿Ì´íÎó¡£ 
ÀýÈ磺 
    int i = j+2; 
    int j = 4; 
    ½«²úÉú±àÒëʱ¿Ì´íÎó¡£ 
    ÊµÀý±äÁ¿³õʼ»¯Ê±¿ÉÒÔÓжԾ²Ì¬±äÁ¿µÄǰÏòÒÀÀµ¡£ÀýÈçÒÔÏ´úÂë¶Î£º 
    int i = j+2;                 //ʵÀý±äÁ¿ 
    static int j = 4;              //¾²Ì¬±äÁ¿ 
iǰÏòÒÀÀµÓÚj£¬i½«±»³õʼ»¯Îª6£¬jΪ4¡£ÒòΪjÊǾ²Ì¬±äÁ¿£¬Ëü 
µÄ³õʼ»¯ÏÈÓÚʵÀý±äÁ¿¡£ 
    ¾²Ì¬µÄ·½·¨²»ÄÜÒýÓÃʵÀý±äÁ¿; Ö»ÄÜÒýÓþ²Ì¬±äÁ¿ºÍ·½·¨¡£ 
 
4.8 ·ÃÎÊÖ¸¶¨·û 
·ÃÎÊÖ¸¶¨·û(access specifier)¾ÍÊdzÌÐòÔ±¿ØÖƶԷ½·¨ºÍ±äÁ¿·ÃÎʵÄÐÞ 
Êηû¡£ÓÃÓÚ¿ØÖÆ·ÃÎʵĹؼü×ÖÊÇpublic£¬private£¬ºÍprotected¡£public 
·½·¨¿ÉÒÔ±»ÈκÎÈË·ÃÎÊ¡£private·½·¨Ö»ÄÜÔÚÀඨÒåʱÔÚÀàµÄÄÚ²¿·ÃÎÊ¡£ 
ÒòΪprivate·½·¨ÔÚÀàÖ®ÍâÊDz»¿É¼ûµÄ£¬ËüÃÇÊÇfinal£¨¶¨Ö¹£©µÄ£¬²¢ÇÒ²» 
Äܱ»¸²¸Ç(²Î¼ûµÚ2.4.10.3½Ú¡°¶¨Ö¹À࣬·½·¨£¬±äÁ¿¡±)¡£´ËÍâ²»Äܽ«Ò»¸ö 
·Ç˽Óз½·¢¸²¸Ç³É˽Óз½·¨£¬protected·ÃÎÊÖ¸¶¨·ûʹ·½·¨ºÍ±äÁ¿Ö»ÐíÆä 
×ÓÀà·ÃÎÊ£¬ÆäËüÀà¶¼²»ÐС£ 
public¿ÉÓÃÓÚÀ࣬·½·¨ºÍ±äÁ¿¡£±êÒÔpublic µÄÀà¡¢·½·¨ºÍ±äÁ¿£¬¿É 
ΪÈκεط½µÄÈÎºÎÆäËûÀà¡¢·½·¨·ÃÎÊ¡£¸²¸Ç²»Äܸıäpublic·ÃÎÊȨÏÞ¡£ 
ûÓб»Ö¸¶¨public»òprivateµÄÀ࣬·½·¨ºÍ±äÁ¿£¬Ö»ÄÜÔÚÉùÃ÷ËüÃǵĠ
°ü(package)ÖзÃÎÊ(²Î¼ûµÚ2.6½Ú ¡°°ü¡±)¡£ 
 
4.9 ±äÁ¿×÷ÓÃÓò¹æÔò 
ÔÚÒ»¸ö°üÄÚ£¬µ±Ò»¸öÀà±»¶¨Òå³ÉÁíÒ»¸öÀàµÄ×ÓÀàʱ£¬³¬ÀàÖÐËù×÷µÄ 
ÉùÃ÷¶Ô×ÓÀà¾ù¿É¼û¡£µ±·½·¨¶¨ÒåÖÐÒýÓñäÁ¿Ê±£¬½«Óõ½ÏÂÃæµÄ×÷ÓÃÓò¹æ 
Ôò£º 
    1. Ê×ÏÈËÑË÷µ±Ç°¿é£¬È»ºóÊÇËùÓÐÍâÌ׵Ŀ飬ֱµ½°üÈݸÿéµÄµ±Ç°·½ 
·¨£¬Õâ±»ÈÏΪÊǾֲ¿×÷ÓÃÓò¡£ÔÚ¾Ö²¿×÷ÓÃÓòºó£¬»¹¼ÌÐøÔÚÀàµÄ×÷ÓÃÓòÖР
ËÑË÷¡£ 
    2. ËÑË÷µ±Ç°ÀàÖеıäÁ¿¡£ 
    3. Èç¹ûûÓÐÕÒµ½±äÁ¿£¬ÔòËÑË÷ËùÓеij¬ÀàÖеıäÁ¿£¬Ê×ÏÈ´ÓÖ±½Ó³¬ 
À࿪ʼ£¬Ö±µ½ObjectÀà¡£Èç¹ûûÓÐÕÒµ½±äÁ¿£¬ËÑË÷ÒýÈëµÄÀàºÍ°üÃû¡£Èç 
¹û»¹Ã»ÓÐÕÒµ½£¬¾Í³ÉΪ±àÒëʱ¿Ì´íÎó¡£ 
    ÔÚÒ»¸öÀàÖжà¸ö±äÁ¿³öÏÖÏàͬµÄÃû×Ö£¬Ò²ÊDZàÒë´íÎó¡£ 
 
4.10  ÐÞÊηû 
JavaÓÐÒÔϹؼü×ÖÓÃ×÷ÐÞÊηû(Modifier)¡£ 
 
4.10.1 Ḭ̈߳²È«±äÁ¿ 
±ê¼ÇÁËThreadsafe£¨Ḭ̈߳²È«£©µÄʵÀý»ò¾²Ì¬±äÁ¿ÊÇÖ¸µ±Ò»¸öÏ̠߳
ʹÓÃËüʱ²»Äܱ»ÆäËüÏ̸߳ü¸Ä£¬¼´±äÁ¿²»Äܱ»Òì²½¸Ä±ä¡£½«±äÁ¿±ê¼ÇΪ 
ThreadsafeµÄÄ¿µÄÊÇÔÊÐí±àÒëÆ÷½øÐÐÓÅ»¯£¬À´ÆÁ±ÎÒì²½¸ü¸ÄµÄ·¢Éú¡£Ê¹Óà
ThreadsafeµÄÓÅ»¯´ëÊ©Êǽ«¼Ä´æÆ÷ÖеÄʵÀý±äÁ¿·ÅÈë¸ßËÙ»º´æ¡£ 
 
4.10.2˲̬±äÁ¿ 
transient£¨Ë²Ì¬£©±êÖ¾±»½âÊÍÆ÷ÓÃÓÚ³Ö¾ÃÐÔ¶ÔÏó¡£µ±Ò»¸öÀàµÄʵÀýÒÔ 
³Ö¾Ã¶ÔÏóд³öʱ£¬Èô±äÁ¿±ê¼ÇΪtransient£¬Ôò×÷ÌØÊâ´¦Àí¡£ 
 
4.10.3 ¶¨Ö¹À࣬·½·¨ºÍ±äÁ¿ 
final£¨¶¨Ö¹£©¹Ø¼ü×ÖÊÇÒ»¸öÐÞÊηû£¬±ê¼ÇÒ»¸öÀ಻ÄÜÓÐ×ÓÀ࣬һ¸ö 
·½·¨²»Äܱ»¸²¸Ç£¬»òÕßÒ»¸ö±äÁ¿ÎªÒ»¸ö³£Öµ¡£Óɶ¨Ö¹ÀàÅÉÉú×ÓÀ࣬¸²¸Ç 
¶¨Ö¹·½·¨£¬¸ü¸Ä¶¨Ö¹±äÁ¿µÄÖµ£¬¶¼½«²úÉú±àÒë´íÎó¡£final±äÁ¿µÄ×÷ÓÃÓë 
×ÖÃæÁ¿Ïàͬ¡£ 
ʹÓÃfinalʹ±àÒëÆ÷Äܹ»×÷ºÜ¶àÓÅ»¯¡£ÆäÖеÄÒ»¸öÓÅ»¯ÊÇ·½·¨ÌåµÄÄÚ 
ÁªÀ©Õ¹(inline expansion)£¬Õâ¸ö·½·¨Ì屨ÐëÊÇСµÄfinalº¯Êý¡£Ð¡µ½Ê²Ã´³Ì 
¶ÈÒÀÀµÓÚ±àÒëÆ÷µÄʵÏÖ¡£ 
    finalÉùÃ÷µÄÀý×ÓÈçÏ£º 
    class Foo { 
        final int value =3;                  //¶¨Ö¹±äÁ¿ 
        final int foo (int a£¬int b) {         //¶¨Ö¹·½·¨ 
        } 
    } 
 
4.10.4 ±¾µØ·½·¨ 
±êÓÐnative£¨±¾µØ£©µÄ·½·¨ÊÇÓÉÆ½Ì¨Ïà¹ØµÄÓïÑÔ(ÈçCÓïÑÔ)ʵÏֵ쬠
²»ÊÇJavaµÄ±¾Éí·½·¨£¬Ã»Óз½·¨Ì壬ÉùÃ÷ÒԷֺŽáÊø¡£¹¹Ô캯Êý²»ÄÜΪ 
native¡£ËäÈ»±¾µØ·½·¨ÊÇÓÉÆ½Ì¨Ïà¹ØµÄÓïÑÔʵÏֵ쬵«ËüÃǵÄʹÓÃÓë²»ÊÇ 
nativeµÄ·½·¨Ò»Ñù£¬ÀýÈ磺¿ÉÒÔ¸²¸Ç¡£±¾µØ·½·¨ÉùÃ÷µÄÀý×ÓÈçÏ£º 
    native long timeofDay(); 
 
4.10.5 ³éÏó·½·¨ 
³éÏó·½·¨(abstract method)Ϊ³¬Àà»ò½çÃæÌṩÁËÒ»ÖÖÊֶΣ¬Ëüʵ¼ÊÉÏ 
ÊDZØÐëÓÉ×ÓÀàʵÏÖµÄÒ»×éЭÒé¡£±ê¼ÇΪabstractµÄ·½·¨±ØÐëÔÚÆä×ÓÀàÖж¨ 
Òå¡£³éÏó·½·¨Ã»Óз½·¨Ì壬 ¶øÉùÃ÷ÓɷֺŽáÊø¡£ 
    Ê¹ÓÃabstract¹Ø¼ü×ֵĹæÔòÈçÏ£º 
    * ¹¹Ô캯Êý£¬²»ÄÜΪabstract¡£ 
    * ¾²Ì¬·½·¨²»ÄÜΪabstract¡£ 
    * private ·½·¨²»ÄÜΪabstract¡£ 
    * abstract·½·¨±ØÐëÔÚÉùÃ÷ËüµÄÀàµÄ×ÓÀàÖж¨Òå¡£ 
    * ²»Äܸ²¸Ç³¬ÀàÖеÄabstract·½·¨¡£ 
    * °üº¬abstract·½·¨µÄÀàºÍ¼Ì³Ðabstract·½·¨µÄÀà±»ÈÏΪÊdzéÏóÀà¡£ 
    * ³õʼ»¯³éÏóÀà»òÖ±½Óµ÷ÓÃabstract·½·¨£¬½«µ¼Ö±àÒëʱ¿Ì´íÎó¡£ 
 
4.10.6 ·½·¨ºÍ¿éµÄͬ²½ 
synchronized£¨Í¬²½£©¹Ø¼ü×ÖÊÇÒ»¸öÐÞÊηû£¬±ê¼ÇÒ»¸ö·½·¨»ò´úÂë¿é 
ÐèҪȡµÃËø(lock)¡£ÎªÁ˱£Ö¤µ±Ò»´úÂë·ÃÎÊijһ×ÊԴʱ£¬ÁíÒ»ÒªÇó·ÃÎʸà
×ÊÔ´µÄ´úÂ뽫²»ÄÜÖ´ÐУ¬ËøÊDZØÒªµÄ¡£Ã¿¸ö¶ÔÏó¶¼ÓÐÒ»¸öËøÓëÖ®ÁªÏµ£¬ Ã¿ 
¸öÀàҲͬÑùÓÐÒ»¸öËø¡£Í¬²½·½·¨ÊÇ¿ÉÔÙÈëµÄ¡£ 
ÿµ±µ÷ÓÃÒ»¸ö±»Í¬²½µÄ·½·¨Ê±£¬Ëü½«µÈ´ýÖ±µ½ËüµÃµ½µ±Ç°ÊµÀý£¨Èç 
¹ûÊǾ²Ì¬·½·¨ÔòΪÀࣩµÄËø£¬È»ºóÖ´ÐдúÂ룬ÊÍ·ÅËø¡£ 
ͬ²½¿éµÄÐÐΪÓëͬ²½·½·¨ÏàËÆ¡£Çø±ðÔÚÓÚËüËùÓõÄËøÊÇ¿éÄÚÓÉ 
synchronized¹Ø¼ü×ÖËùÔÚÓï¾äÖ¸¶¨µÄ¶ÔÏó»òÀàµÄËø£¬¶ø²»Êǵ±Ç°ÀàµÄËø¡£ 
    Í¬²½¿éµÄÉùÃ÷ÈçÏ£º 
    /* ±¾·½·¨Ç°ÎÄ´úÂë*/ 
    synchronized (<object or className>)  {//  Í¬²½Ä£¿é 
         /*  Í¬²½·ÃÎÊ´úÂë  */ 
    } 
    /*±¾·½·¨ÆäÓà´úÂë*/ 
    ÉùÃ÷ͬ²½·½·¨µÄÀý×ÓÈçÏ£º 
    class Point { 
        float x£¬y; 
        synchronized void scale (float f ) { 
            x*=f; 
            y*=f; 
        } 
    } 
    Í¬²½Ä£¿éµÄÀý×ÓÈçÏ£º 
    class Rectangle { 
         Point topLeft; 
         ¡­ 
         void print ( ) { 
              synchronied    (topLeft)  { 
                  println (¡°topLeft.x=¡±+ topLeft.x); 
                  println (¡°topLeft.y=¡±+ topLeft.y); 
              } 
              ¡­ 
         } 
    } 
 
5. ½çÃæ 
½çÃæ(interface)¶¨ÒåÁËÒ»×é·½·¨£¬¶øÃ»ÓÐʵÏÖÆäÌå¡£½çÃæÖ»Ìṩ·½·¨ 
ЭÒéµÄ·â×°£¬¶ø²»ÏÞÖÆÊµÏÖ±ØÐëÔÚʲô¼Ì³ÐÊ÷ÉÏ¡£µ±Ò»¸öÀàʵÏÖ½çÃæÊ±£¬ 
Ò»°ã±ØÐëʵÏÖ½çÃæÃèÊöµÄËùÓз½·¨µÄÌå¡£(Èç¹ûʵÏÖ½çÃæµÄÀàÊdzéÏóÀ࣬ 
Ëü¿ÉÒÔ°ÑʵÏÖ½çÃæ·½·¨µÄÈÎÎñ½»¸øËüµÄ×ÓÀà¡£) 
½çÃæ½â¾öÁËÒò¶à¼Ì³ÐÔËÐÐʱ¹ý´ó¿ªÏúÕâÀàÎÊÌâ¡£ µ«ÓÉÓÚ½çÃæ²ÉÓö¯ 
̬·½·¨Êø¶¨£¬Ê¹ÓÃËüÃǵÄʱºòÔÚÐÔÄÜÉÏ»áÊܵ½Ò»µãÓ°Ïì¡£ 
½çÃæÔÊÐí¼¸¸öÀàͬʱÏíÓÐÒ»¸ö³ÌÐòÉè¼Æ½çÃæ£¬¶ø±Ë´Ë²»Íêȫ֪µÀ¶Ô 
·½¾ßÌåµÄʵÏÖ¡£ÏÂÃæµÄÀý×ÓÊÇÒ»¸ö½çÃæµÄÉùÃ÷£¨¼´ÓÃÁËinterface ¹Ø¼ü×Ö£©£¬ 
²¢ÓÉÒ»¸öÀàʵÏÖ¡£ 
    public interface   Storing { 
         void freezeDry (Stream s); 
         void reconstitute (Stream s); 
    } 
    public class Image implement Storing£¬Painting { 
          ¡­ 
          void freezeDry (Stream s) { 
              //ÅÅÐòǰ°´JPEG Ñ¹ËõͼÏó 
          } 
          void reconstitute (Stream s ) { 
              // ¶ÁÈëǰ°´JPEG ½âѹËõͼÏó 
               ¡­ 
          } 
    } 
ÏóÀàÒ»Ñù£¬½çÃæÒ²·Ö˽ÓУ¨È±Ê¡£©ºÍ¹«ÓС£×÷ÓÃÓòÓëÀàÏàͬ¡£½çÃæ 
Äڵķ½·¨Í¨³£ÊÇpublic£¬±äÁ¿ÊÇpublic£¬static ºÍfinalµÄ¡£ 
 
5.1½çÃæ×÷ΪÀàÐÍ 
°´ÉùÃ÷µÄÓï·¨£¬½çÃæÃû£¨interfaceName£©ºÍ±äÁ¿Ãû£¨ variableName£© 
ÉùÃ÷µÄÊÇʵÏָýçÃæÃûµÄij¸öÀàµÄʵÀý±äÁ¿»ò²ÎÊý¡£µ±½çÃæ×÷ΪÀàÐÍʱ£¬ 
ÆäÐÐΪºÍÀà×÷ΪÀàÐÍÍêȫһÑù¡£Ëüʹ³ÌÐòÔ±¿ÉÖ¸¶¨ÊµÏÖ¸ø¶¨½çÃæµÄ¶ÔÏ󣬠
¶ø²»±ØÖªµÀ¸Ã¶ÔÏóµÄ¾ßÌåÀàÐÍ»ò¼Ì³Ð¹ØÏµ¡£Ê¹ÓýçÃæ¿ÉÒÔ²»±Ø¹ØÐĹ²Ïí 
¹«¹²³éÏó³¬ÀàµÄÆäËüÀ࣬»òÈçºÎÔÚObjectÖÐÔö¼Ó·½·¨¡£ 
    ÏÂÃæÊÇ˵Ã÷½çÃæÃû¡¢·½·¨ÃûÓï·¨µÄÀý×Ó¡£ 
    class StorageManager £û 
        Stream stream; 
        ¡­  
        //  Storing ÊǽçÃæÃû 
        void pickle (Storing obj)  { 
            obj. freezeDry (stream); 
        } 
    } 
 
5.2 ½çÃæÖеķ½·¨ 
    ½çÃæÖеķ½·¨¶¨ÒåÈçÏ£º 
    returnType   methodName (parameterList); 
´ËÉùÃ÷ûÓÐÐÞÊηû(modifier)¡£½çÃæÖÐËùÓеķ½·¨¶¼Êǹ«ÓеÄ(public£© 
ºÍ³éÏóµÄ£¨abstract£©¹ÊÎÞÆäËûÐÞÊηû£¬²Î¼û¡°³éÏó·½·¨¡±Ò»½Ú¡£ 
 
5.3 ½çÃæÖеıäÁ¿ 
½çÃæÖеıäÁ¿ÊÇfinal£¬public»òstaticµÄ£¬ÎÞÐÞÊηû£¬±äÁ¿±ØÐë³õ 
ʼ»¯¡£ 
 
5.4 ×éºÏ½çÃæ 
    ÀûÓÃextends¹Ø¼ü×Ö¡£¿ÉÒ԰Ѷà¸ö½çÃæ×éºÏΪһ¸ö½çÃæ£¬È磺 
    interface  DoesItAll  extends String£¬Painting { 
             void doessomethingElse ( ); 
    } 
 
6. °ü 
°ü(Package)ÓÉÒ»×éÀà(class)ºÍ½çÃæ(interface)×é³É¡£ËüÊǹÜÀí´óÐÍÃû 
×ֿռ䣬±ÜÃâ³åÍ»µÄ¹¤¾ß¡£Ã¿Ò»¸öÀàºÍ½çÃæµÄÃû×Ö¶¼°üº¬ÔÚij¸ö°üÖС£ 
°´ÕÕÒ»°ãµÄϰ¹ß£¬ËüµÄÃû×ÖÊÇÓÉ¡°.¡±ºÅ·Ö¸ôµÄµ¥´Ê¹¹³É£¬µÚÒ»¸öµ¥´Êͨ 
³£ÊÇ¿ª·¢Õâ¸ö°üµÄ×éÖ¯µÄÃû³Æ¡£ 
 
6.1 ¶¨ÒåÒ»¸ö±àÒëµ¥ÔªµÄ°ü 
±àÒëµ¥ÔªµÄ°üÓÉpackageÓï¾ä¶¨Òå¡£Èç¹ûʹÓÃpackageÓï¾ä£¬±àÒëµ¥ 
ÔªµÄµÚÒ»ÐбØÐëÎÞ¿Õ¸ñ£¬Ò²ÎÞ×¢ÊÍ¡£Æä¸ñʽÈçÏ£º 
package  packageName; 
Èô±àÒëµ¥ÔªÎÞpackageÓï¾ä£¬Ôò¸Ãµ¥Ôª±»ÖÃÓÚÒ»¸öȱʡµÄÎÞÃûµÄ°ü 
ÖС£ 
 
6.2 Ê¹ÓÃÆäËü°üÖеÄÀàºÍ½çÃæ 
ÔÚJavaÓïÑÔÌṩһ¸ö°ü¿ÉÒÔʹÓÃÁíÒ»¸ö°üÖÐÀàºÍ½çÃæµÄ¶¨ÒåºÍʵÏÖ 
µÄ»úÖÆ¡£ÓÃimport¹Ø¼ü´ÊÀ´±êÃ÷À´×ÔÆäËü°üÖеÄÀà¡£Ò»¸ö±àÒëµ¥Ôª¿ÉÒÔ 
×Ô¶¯°ÑÖ¸¶¨µÄÀàºÍ½çÃæÊäÈëµ½Ëü×Ô¼ºµÄ°üÖС£ 
ÔÚÒ»¸ö°üÖеĴúÂë¿ÉÒÔÓÐÁ½ÖÖ·½Ê½À´¶¨ÒåÀ´×ÔÆäËü°üÖеÄÀàºÍ½ç 
Ãæ£º 
    * ÔÚÿ¸öÒýÓõÄÀàºÍ½çÃæÇ°Ãæ¸ø³öËüÃÇËùÔڵİüµÄÃû×Ö; 
      //ǰ׺°üÃû·¨ 
       acme. project. FooBar obj=new acme. project. FooBar( ); 
    * Ê¹ÓÃimportÓï¾ä£¬ÒýÈëÒ»¸öÀà»òÒ»¸ö½çÃæ£¬»ò°üº¬ËüÃǵİü¡£Òý 
ÈëµÄÀàºÍ½çÃæµÄÃû×ÖÔÚµ±Ç°µÄÃû×Ö¿Õ¼ä¿ÉÓá£ÒýÈëÒ»¸ö°üʱ£¬Ôò¸Ã°üËù 
ÓеĹ«ÓÐÀàºÍ½çÃæ¾ù¿ÉÓá£ÆäÐÎʽÈçÏ£º 
    // ´Ó acme.project ÒýÈëËùÓÐÀà 
      import  acme.project.*; 
    Õâ¸öÓï¾ä±íʾacme.projectÖÐËùÓеĹ«ÓÐÀà±»ÒýÈ뵱ǰ°ü¡£ 
    ÒÔÏÂÓï¾ä´Óacme. project°üÖнøÈëÒ»¸öÀàEmployec_List¡£ 
    //´Ó acme. project¶øÒýÈë Employee_List 
    import  acme.project.Employee_list; 
    Employee_List obj = new Employee_List( ); 
ÔÚʹÓÃÒ»¸öÍⲿÀà»ò½çÃæÊ±£¬±ØÐëÒªÉùÃ÷¸ÃÀà»ò½çÃæËùÔڵİü£¬·ñ 
Ôò»á²úÉú±àÒë´íÎó¡£ 
 
7. ±í´ïʽ 
    JavaÓïÑԵıí´ïʽºÍCÓïÑԷdz£ÀàËÆ¡£ 
 
7.1 ÔËËã·û 
     ÔËËã·û(operator)ÓÅÏȼ¶´Ó¸ßµ½µ×ÅÅÁÐÈçÏ£º 
.   [ ]   () 
++   --    !   ¡«  instanceof 
*   /    % 
+  - 
<<  >>  >>> 
<  >  <=   >\   
==  ! = 


&& 
|| 
? : 
=  op = 

 
7.1.1  ÕûÊýÉϵÄÔËËã·û 
ÔÚÕûÊýÔËËãʱ£¬Èç¹û²Ù×÷ÊýÊÇlongÀàÐÍ£¬ÔòÔËËã½á¹ûÊÇlongÀàÐÍ£¬ 
·ñÔòΪintÀàÐÍ£¬¾ø²»»áÊÇbyte£¬short»òcharÐÍ¡£ÕâÑù£¬Èç¹û±äÁ¿i±» 
ÉùÃ÷Ϊshort»òbyte£¬i+1»áÊÇint¡£Èç¹û½á¹û³¬¹ý¸ÃÀàÐ͵Äȡֵ·¶Î§£¬ 
Ôò°´¸ÃÀàÐ͵Ä×î´óֵȡģ¡£µ¥Ä¿ÕûÊýÔËËã·ûÊÇ£º 
 
       ÔËËã·û     ²Ù×÷ 
        -         µ¥Ä¿·Ç 
        ¡«        Î»²¹Âë 
        ++        ¼Ó1 
        --         ¼õ1 
 
++ÔËËã·ûÓÃÓÚ±íʾֱ½Ó¼Ó1²Ù×÷¡£ÔöÁ¿²Ù×÷Ò²¿ÉÒÔÓüÓÔËËã·ûºÍ¸³ 
Öµ²Ù×÷¼ä½ÓÍê³É¡£++ lvalue£¨×óÖµ£©±íʾlvalue+=1,  ++lvalue Ò²±íʾ 
lvalue =lvalue +1 (Ö»ÒªlvalueûÓи±×÷ÓÃ)¡£--ÔËËã·ûÓÃÓÚ±íʾ¼õ1²Ù×÷¡£ 
++ºÍ--ÔËËã·û¼È¿ÉÒÔ×÷Ϊǰ׺ÔËËã·û£¬Ò²¿ÉÒÔ×öΪºó׺ÔËËã·û¡£Ë«Ä¿Õû 
ÊýÔËËã·ûÊÇ£º 
 
      ÔËËã·û            ²Ù×÷** 
       +                 ¼Ó 
       -                 ¼õ 
       *                 ³Ë 
       /                 ³ý 
      %                È¡Ä£ 
      &                Î»Óë 
      £ü               Î»»ò 
      ^                Î»Òì»ò 
      <<               ×óÒÆ 
      >>              ÓÒÒÆ(´ø·ûºÅ) 
      >>>             ÌíÁãÓÒÒÆ 
 
**  integer op integer=>integer 
 
    ÕûÊý³ý·¨°´ÁãÉáÈë¡£³ý·¨ºÍȡģ×ñÊØÒÔϵÈʽ£º 
    ( a/b ) * b + ( a%b ) == a 
ÕûÊýËãÊõÔËËãµÄÒì³£ÊÇÓÉÓÚ³ýÁã»ò°´ÁãȡģÔì³ÉµÄ¡£Ëü½«Òý·¢Ò»¸ö 
ArithmeticExceptionËãÊõÒì³£¡£ÏÂÒç²úÉúÁ㣬ÉÏÒçµ¼ÖÂÔ½½ç¡£ÀýÈ磺 ¼Ó1 
³¬¹ýÕûÊý×î´óÖµ£¬È¡Ä£ºó£¬±ä³É×îСֵ¡£ 
Ò»¸öop=¸³ÖµÔËËã·û£¬ºÍÉϱíÖеĸ÷˫ĿÕûÊýÔËËã·ûÁªÓ㬹¹³ÉÒ» 
¸ö±í´ïʽ¡£ 
    ÕûÊý¹ØÏµÔËËã·û<£¬ >£¬<=£¬>=£¬==ºÍ!=²úÉúbooleanÀàÐ͵ÄÊý¾Ý¡£ 
 
7.1.2  ²¼¶ûÔËËã·û 
²¼¶û(boolean)±äÁ¿»ò±í´ïʽµÄ×éºÏÔËËã¿ÉÒÔ²úÉúеÄbooleanÖµ¡£µ¥ 
Ä¿ÔËËã·û!  ÊDz¼¶û·Ç¡£Ë«Ä¿ÔËËã·û£¦£¬£üºÍ^ÊÇÂß¼­AND£¬ORºÍXOR 
ÔËËã·û£¬ËüÃÇÇ¿ÖÆÁ½¸ö²Ù×÷ÊýÇó²¼¶ûÖµ¡£Îª±ÜÃâÓÒ²à²Ù×÷ÊýÈßÓàÇóÖµ£¬ 
Óû§¿ÉÒÔʹÓöÌ·ÇóÖµÔËËã·û£¦£¦ºÍ£ü£ü¡£Óû§¿ÉÒÔʹÓÃ==ºÍ!=£¬¸³Öµ 
ÔËËã·ûÒ²¿ÉÒÔÓà&=¡¢|=¡¢^=¡£ÈýÔªÌõ¼þ²Ù×÷·û? : ºÍCÓïÑÔÖеÄÒ»Ñù¡£ 
 
7.1.3  ¸¡µãÔËËã·û 
¸¡µãÔËËã·û¿ÉÒÔʹÓ󣹿ÔËËã·ûµÄ×éºÏ£º È絥ĿµÄÔËËã·û++¡¢--£¬ 
˫ĿµÄÔËËã·û+¡¢-¡¢* ºÍ/£¬ÒÔ¼°¸³ÖµÔËËã·û+=£¬-=£¬*=£¬ºÍ/=¡£´ËÍ⣬ 
»¹ÓÐȡģÔËË㣺 %ºÍ%=Ò²¿ÉÒÔ×÷ÓÃÓÚ¸¡µãÊý£¬ÀýÈ磺 
    a%b 
ºÍa-((int) (a/b)*b)µÄÓïÒåÏàͬ¡£Õâ±íʾa%bµÄ½á¹ûÊdzýÍêºóʣϵĠ
¸¡µãÊý²¿·Ö¡£Ö»Óе¥¾«¶È²Ù×÷ÊýµÄ¸¡µã±í´ïʽ°´ÕÕµ¥¾«¶ÈÔËËãÇóÖµ£¬²ú 
Éúµ¥¾«¶È½á¹û¡£Èç¹û¸¡µã±í´ïʽÖк¬ÓÐÒ»¸ö»òÒ»¸öÒÔÉϵÄË«¾«¶È²Ù×÷Êý£¬ 
Ôò°´Ë«¾«¶ÈÔËË㣬½á¹ûÊÇË«¾«¶È¸¡µãÊý¡£ 
JavaÏÖÔÚÉÐÎÞ¸¡µãËãÊõÔËËãµÄÒì³£´¦Àí¡£°´ÕÕIEEE754¸¡µã¹æ¸ñ˵ 
Ã÷£¬Á½¸öÌØÊâµÄÖµ InfºÍNa NÊÇ¿ÉÌæ»»Ê¹Óõģ¬ÉÏÒç²úÉúInf£¬ÏÂÒç²ú 
Éú0£¬³ýÁã²úÉúInf¡£ 
¿ÉÒÔʹÓùØÏµÔËËã·û£¬²úÉúbooleanÖµ£º >£¬< , >=£¬<=£¬==£¬!=¡£ 
°´NaNµÄÐÔÖÊ£¬¸¡µãÖµ²»ÊÇÍêÈ«ÓÐÐòµÄ£¬ËùÒÔÔÚ¸¡µãÊý±È½ÏʱҪСÐÄ¡£ 
ÀýÈ磺 Èç¹ûa<b·ÇÕæ£¬Ôò²¢²»Òâζ×Åa>=b; ÔÙÀýÈ磬a!=b£¬²¢²»±íʾ 
a>b | a<b¡£Êµ¼ÊÉÏ£¬¿ÉÄܾÍûÓдóС֮·Ö¡£ 
¸¡µãËãÊõÔËËãºÍÊý¾Ý¸ñʽ¶¨Òå°´IEEE754µÄ¡°¸¡µãËãÊõÔËËã±ê×¼¡±¡£ 
²Î¼û¸½Â¼ÖеĹØÓÚJava¸¡µãÔËËãʵÏÖµÄϸ½Ú¡£ 
 
7.1.4 Êý×éÔËËã·û 
   Êý×éÔËËã·ûÐÎʽÈçÏ£º 
   <expression> [ <expression>] 
   ¿É¸ø³öÊý×éÖÐij¸öÔªËØµÄÖµ¡£ºÏ·¨µÄȡֵ·¶Î§ÊÇ´Ó0µ½Êý×éµÄ³¤¶È¼õ 
1¡£È¡Öµ·¶Î§µÄ¼ì²éÖ»ÔÚÔËÐÐʱ¿Ìʵʩ¡£ 
 
7.1.5 ´®ÔËËã·û 
´®ÒÔString¶ÔÏóʵÏÖ£¨¼û¡°´®×ÖÃæÁ¿¡±½Ú£©¡£ÔËËã·û"+"Íê³É²¢´®²Ù 
×÷£¬Èç¹û±ØÒªÔò×Ô¶¯°Ñ²Ù×÷Êýת»»ÎªStringÐÍ¡£Èç¹û²Ù×÷ÊýÊÇÒ»¸ö¶ÔÏ󣬠
Ëü¿É¶¨ÒåÒ»¸ö·½·¨toString ( ) ·µ»Ø¸Ã¶ÔÏóµÄString·½Ê½£¬ÀýÈç 
    float a = 1.0 
    print (¡°The value of a is¡±+ a +¡°\n¡±); 
    +ÔËËã·ûÓõ½´®ÉϵÄÀý×Ó 
    String s=¡°a=¡±+ a; 
    +=ÔËËã·ûÒ²¿ÉÒÔÓÃÓÚString¡£×¢Ò⣬×ó±ß(ÏÂÀýÖеÄs1)½öÇóÖµÒ»´Î¡£ 
    s1+=a; //s1=s1+a 
    //Èôa·ÇStringÐÍ£¬×Ô¶¯×ª»»ÎªStringÐÍ¡£ 
 
7.1.6 ¶ÔÏóÔËËã·û 
˫ĿÔËËã·ûistanceof ²âÊÔij¸ö¶ÔÏóÊÇ·ñÊÇÖ¸¶¨Àà»òÆä×ÓÀàµÄʵÀý¡£ 
ÀýÈ磺 
    if (thermostat instanceof  MeasuringDevice) { 
            MeasuringDevice dev=(MeasuringDevice) thermostat; 
            ¡­ 
    } 
    ÊÇÅж¨thermostatÊÇ·ñÊÇMeasuringDeviceµÄʵÀý»òÊÇÆä×ÓÀàµÄʵÀý¡£ 
 
7.2 Ç¿ÖƺÍת»» 
JavaÓïÑԺͽâÊÍÆ÷ÏÞÖÆÊ¹ÓÃÇ¿ÖÆºÍת»»£¬ÒÔ·ÀÖ¹³ö´íµ¼ÖÂϵͳ±ÀÀ£¡£ 
ÕûÊýºÍ¸¡µãÊýÖ®¼ä¿ÉÒÔÀ´»ØÇ¿ÖÆ×ª»»£¬µ«ÕûÊý²»ÄÜÇ¿ÖÆ³ÉÊý×é»ò¶ÔÏó¡£ 
Object²»Äܱ»Ç¿ÖÆÎª»ù±¾ÀàÐÍ¡£Ò»¸öʵÀý¿ÉÒÔ±»Ç¿ÖƳɳ¬ÀàµÄʵÀý£¬µ« 
Ç¿ÖÆ³É×ÓÀàµÄʵÀý»áµ¼ÖÂÔËÐÐʱ¿ÌµÄ¼ì²é¡£Èç¹ûÒ»¸ö±»Ç¿ÖƳÉ×ÓÀàʵÀý 
µÄ¶ÔÏó²»ÊǸÃ×ÓÀàµÄʵÀý(»ò¸Ã×ÓÀàµÄ×ÓÀà¶ÔÏó)£¬½âÊÍÆ÷»á²úÉú 
ClassCastException¡£ 
 
8. Óï¾ä 
8.1 ÉùÃ÷ 
ÉùÃ÷¿ÉÒÔ³öÏÖÔÚËùÓÐÓï¾ä¿ÉÄܳöÏֵĵط½¡£ÉùÃ÷µÄ×÷ÓÃÓò½áÊøÓÚ·â 
±Õ¸Ã¿éµÄ½áβ´¦¡£´ËÍ⣬¿ÉÒÔÔÚforÓï¾äµÄÍ·²¿×÷±äÁ¿ÉùÃ÷£¬ÀýÈ磺 
    for (int i=0; i<10; i++) { 
       ¡­ 
    } 
µ«ÒÔÕâÖÖ·½Ê½ÉùÃ÷µÄ±äÁ¿£¬½öÔÚforÓï¾äÑ­»·ÌåÄÚÓÐЧ¡£ÀýÈ磬ÏÂÃæ 
µÄÒ»¶Î´úÂëºÍÉÏÊö´úÂëµÈ 
¼Û¡£ 
    { 
        int i=0; 
        for (; i<10; i++)  { 
           ¡­ 
        } 
    } 
 
8.2 ±í´ïʽ 
    ±í´ïʽÊÇÓï¾ä£º 
    a=3£» 
    print (23); 
    foo.bar( ); 
 
8.3 ¿ØÖÆÁ÷ 
   ÏÂÃæÊǶԿØÖÆÁ÷µÄ×ܽ᣺ 
if (boolean)  statement 
else statement 
switch(e1)  { 
    case e2: statement 
    default: statement 

break [label] 
continue [label] 
return e1; 
for ([e1]; [e2]; [e3]) statement 
while (boolean) statement 
do statement while (boolean); 
label: statement 
JavaÖ§³ÖÓбêºÅµÄÑ­»·ºÍÓбêºÅµÄ¶Ï¿ª£¬ÀýÈ磺 
outer£º // ÊDZêºÅ 
for (int i=0; i<10; i++) { 
 for (int j=0; <10; j++)  { 
   if (¡­)  { 
     break outer; 
   } 
   if (¡­)  { 
   } 
 } 

    ÔÚÑ­»·ºÍ¶Ï¿ªÖÐʹÓñêºÅÒª×ñÊØÒÔÏÂ×¼Ôò£º 
    * ÈκÎÓï¾ä¿ÉÒÔÓÐÒ»¸ö±êºÅ¡£ 
    * Èç¹ûÒ»¸öbreakÓï¾äÓÐÒ»¸ö±êºÅ£¬Õâ¸ö±êºÅ±ØÐëÔÚÒ»¸ö·â±ÕÓï¾ä 
µÄǰ¶Ë¡£ 
    * Èç¹ûÒ»¸öcontinueÓï¾äÓÐÒ»¸ö±êºÅ£¬ÔòËü±ØÐëÊÇÒ»¸ö·â±ÕÑ­»·µÄ 
±êºÅ¡£ 
 
8.4 Òì³£ 
µ±ÔÚJava³ÌÐòÖз¢ÉúÒ»¸ö´íÎóʱ£¬ÀýÈ磺һ¸ö±äÔªµÄÖµ·Ç·¨£¬´úÂë 
»á·¢ÏÖÕâ¸ö´íÎ󣬲¢Òý·¢Ò»¸öÒì³£(exception)¡£ÔÚȱʡµÄÇé¿öÏ£¬Òì³£»á 
Êä³öÒ»¸ö´íÎóÏûÏ¢£¬È»ºóÖÐÖ¹Ï̵߳ÄÖ´ÐС£µ«ÊÇ£¬³ÌÐò×Ô¼º¿ÉÒÔ¶¨ÒåÒì 
³£´¦Àí¶Î(exception handler)À´½Ø»ñ(catch)Òì³££¬²¢´Ó´íÎóÖлָ´¡£ 
ÓÐһЩÒì³£ÊÇÓÉJava½âÊÍÆ÷ÔÚÔËÐÐʱ¿ÌÒý·¢µÄ¡£Êµ¼ÊÉÏ£¬ÈκÎÀà¶¼ 
¿ÉÒÔ¶¨ÒåÊôÓÚ×Ô¼ºµÄÒì³££¬ 
²¢Ê¹ÓÃthrowÓï¾äÒý·¢ËüÃÇ¡£ 
Ò»¸öthrow£¨Òý·¢£©Óï¾äÊÇÓÉthrow¹Ø¼ü×ÖºÍÒ»¸ö¶ÔÏ󹹳ɡ£°´³£¹æ£¬ 
¸Ã¶ÔÏóÓ¦¸ÃÊÇExceptionÀàµÄʵÀý»òÆä×ÓÀàµÄʵÀý¡£throwÓï¾ä»áÒýÆðÖ´ 
ÐÐתÏòÏàÓ¦µÄÒì³£´¦Àí¶Î¡£µ±Ò»¸öthrowÓï¾äÖ´ÐÐʱ£¬ËüÏÂÃæµÄËùÓдú 
Âë²»ÔÙÖ´ÐÐÁË£¬ËüËùÔڵķ½·¨Ò²²»ÔÙ·µ»ØÖµ¡£ÏÂÃæµÄÀý×Ó½«ÑÝʾÈçºÎ´´ 
½¨Ò»¸öExceptionµÄ×ÓÀ࣬ȻºóÒý·¢Ò»¸öÒì³£¡£ 
    class MyException extends Exception { 
    } 
    class MyClass { 
        void oops() { 
            if ( /* ²»³öÏÖ´íÎó */)  { 
               ¡­ 
            } else { /* ³ö´í */ 
              throw new MyException( ); 
            } 
        } 
    } 
ΪÁ˶¨ÒåÒ»¸öÒì³£´¦Àí¶Î£¬³ÌÐò±ØÐëÓÃtryÓï¾ä°Ñ¿ÉÄܲúÉúÒì³£µÄ´ú 
Âë³É×é¡£ÔÚtryÓï¾äºóÃæ¸úÉÏÒ»¸ö»ò¶à¸öcatch(½Ø»ñ£©Óï¾ä£¬Ã¿¸öÒì³£¶Ô 
Ó¦Ò»¸öcatchÓï¾ä¡£Ã¿¸öcatchÓï¾äÖаüº¬×ÅÒì³£´¦Àí 
¶Î¡£ÀýÈ磺 
    try { 
      p.a=10; 
    } catch ( NullPointerException e) { 
         println(¡°p was null¡±); 
      } catch ( Exception e) { 
         println (¡°other errors occured¡±);  
        } catch ( Object obj)  { 
        println(¡°Who threw that object?¡±); 
    } 
catchÓï¾äºÍÒ»¸ö·½·¨¶¨ÒåÀàËÆ£¬Ö»²»¹ý¸Ã·½·¨Ö»ÓÐÒ»¸ö²ÎÊý£¬ÇÒÎÞ 
·µ»ØÀàÐÍ¡£²ÎÊý¿ÉÒÔÊÇÒ»¸öÀà»òÒ»¸ö½çÃæ¡£µ±Ò»¸öÒì³£·¢Éúʱ£¬Ç¶Ì׵Ġ
try/catchÓï¾ä»áѰÕÒ³öÓë¸ÃÒì³£ÀàÏàÆ¥ÅäµÄ²ÎÊý¡£Èç¹ûÒ»¸ö²ÎÊýºÍÖ¸¶¨ 
Ò쳣ƥÅäÔò£º 
    * ¸Ã²ÎÊýºÍÖ¸¶¨µÄÒì³£ÊÇͬһ¸öÀ࣬»ò 
    * ¸Ã²ÎÊýÊÇÖ¸¶¨Òì³£µÄ×ÓÀ࣬»ò 
    * Èç¹û²ÎÊýÊÇÒ»¸ö½çÃæ£¬Ö¸¶¨Òì³£ÀàʵÏÖÁËÕâ¸ö½çÃæ¡£ 
µÚÒ»¸ö²ÎÊýºÍÒ쳣ƥÅäµÄtry/catchÓï¾ä£¬ÔòÓëÆäÆ¥ÅäµÄcatchÓï¾äÖ´ 
ÐС£ÔÚcatchÓï¾äÖ´ÐÐÍêºó£¬³ÌÐòµÄÖ´Ðб»»Ö¸´¡£µ«ÒѲ»¿ÉÄָܻ´µ½Òì³£ 
·¢Éú´¦ÔÙ´ÎÖ´ÐС£ÀýÈ磺 
    print ( "now"); 
    try { 
      print ("is"); 
      throw new MyException( ); 
      print ("a"); 
    } catch (MyException e)  { 
        print ("the "); 
      } 
    print ("time\n"); 
´òӡΪ¡°now is the time¡±¡£ÕýÈçÕâ¸öÀý×ÓËùʾ£¬Òì³£Ó¦¸ÃÖ÷ÒªÓÃÓÚ 
´íÎó´¦Àí£¬ÈôÓÃÓÚÆäËü·½Ãæ»áʹ´úÂë»ÞɬÄѶ®¡£ 
Òì³£´¦Àí¶ÎÊÇ¿ÉÒÔǶÌ׵ģ¬ÔÊÐíÒì³£´¦Àí¿ÉÒÔ·¢ÉúÔÚ¶à¸öµØ·½¡£Ç¶ 
Ì×Òì³£´¦Àíͨ³£ÓÃÓÚµ±µÚÒ»¸ö´¦Àí³ÌÐòÎÞ·¨ÍêÈ«´Ó´íÎóÖлָ´¹ýÀ´µÄʱ 
ºò£¬¶ø²»µÃ²»Ö´ÐÐһЩÇå³ý´úÂ롣ΪÁ˰ÑÒì³£´¦Àí¿ØÖÆ´«µÝ¸ø¸ü¸ß²ãµÄ 
´¦Àí¶Î£¬¿ÉÒÔÔÙÒ»´Î¶Ô½Ø»ñ¶ÔÏóʵʩthrow²Ù×÷¡£×¢ÒªÔÙ´ÎʵʩthrowÒì 
³£µÄ·½·¨£¬ 
    throwÓï¾äÖ´ÐÐÍêºó£¬»áÖÕÖ¹Ö´ÐС£ 
    try { 
       f. open ( ); 
    }  catch(Exception e)  { 
           f. close( ); 
           throw  e; 
       } 
 
8.4.1 ¶¨¾ÖÓï¾ä 
finally£¨¶¨¾Ö£©Óï¾äÊÇÓÃÓÚ±£Ö¤ÎÞÂÛÔÚÒì³£ÊÇ·ñ·¢ÉúµÄÇé¿öÏ£¬Ä³ 
Щ´úÂë±»Ö´ÐС£ÏÂÀý˵Ã÷finallyÓï¾äµÄÓ÷¨£º 
    try { 
      //×öijЩ¶¯×÷£» 
    £ý finally { 
       //´ËºóÇå³ý£» 
       } 
    ºÍÒÔÏ´úÂëÀàËÆ 
    try { 
      //×öijЩ¶¯×÷  
     } catch (Object e) { 
         //´ËºóÇå³ý£» 
         throw e; 
       } 
    //´ËºóÇå³ý£» 
¼´Ê¹try¿éÖаüº¬return£¬break£¬continue£¬throwÓï¾ä£¬finally 
Óï¾äÒ²»á±»Ö´ÐС£ÀýÈ磺 ÏÂÃæµÄ´úÂë¡°finally¡±×ÜÊDZ»Êä³ö£¬¶ø¡°after  
try¡±½öÔÚa!=10ʱ±»Êä³ö¡£  
     try { 
       if (a==10) { 
          return ; 
       } 
     }  finally { 
          print ("finally\n"); 
        £ý 
     print ("after try \n"); 
 
8.4.2  ÔËÐÐʱ¿ÌÒì³£ 
±¾½ÚÁгöµÄÇåµ¥ÊÇJava½âÊÍÆ÷Òý·¢µÄ¸÷ÖÖÒì³£¡£µ±ÔËÐÐʱ¿Ì·¢ÏÖ¸÷ 
ÖÖ´íÎó£¬ÓɽâÊÍÆ÷Òý·¢Òì³£¡£ 
 
ArithmeticException 
Èç¹û³ÌÐòÊÔͼ³ý0£¬»òÓÃ0ȡ죬»á²úÉúArithmeticException£¨Ëã 
ÊõÒì³££©£¬ÆäËüËãÊõ²Ù×÷²»»á²úÉúÒì³£¡£ÓйØJavaÈçºÎ´¦ÀíÆäËüËãÊõ´í 
ÎóµÄÐÅÏ¢£¬¼û¡°ÕûÊýÔËËã·û¡±ºÍ¡°¸¡µãÔËËã·û¡±Á½½Ú¡£ 
ÀýÈ磺 ÏÂÃæµÄ´úÂ뽫»áÒý·¢ArithmeticExceptionÒì³££º 
    class Arith { 
       public static void main (String args [ ] ) { 
             int j = 0; 
             j = j/j; 
       } 
     } 
 
NullPointerException 
µ±³ÌÐòÊÔͼ·ÃÎÊÒ»¸ö¿Õ¶ÔÏóÖеıäÁ¿»ò·½·¨£¬»òÒ»¸ö¿ÕÊý×éÖеÄÔª 
ËØÊ±ÔòÒý·¢NullPointerException£¨¿ÕÖ¸ÕëÒì³££©¡£ÀýÈ磬·ÃÎʳ¤¶ÈΪ0 
µÄÊý×éa[0]¡£ÓÐÒÔÏÂÀàÉùÃ÷£¬ÔËÐÐʱ»áÒý·¢NullPointerExceptionÒì³££º 
    class Null { 
         public static void main(String args [ ]) { 
            String  o = null; 
            int a [ ] = null; 
            o.length( ); 
            a[0] = 0; 
         } 
     } 
     ÓÐȤµÄÊÇ£¬Èç¹ûÎÒÃÇÒý·¢Ò»¸ö¿Õ¶ÔÏó£¬Ò²»á²úÒ» 
NullPointerExceptionÒì³£¡£ 
 
IncompatibleClassChangeException 
µ±Ò»¸öÀàµÄ¶¨Òå±»¸Ä±ä£¬¶øÒýÓøÃÀàµÄÆäËüÀàûÓб»ÖØÐ±àÒëʱ£¬ 
»á²úÉúÕâÒ»Òì³£¡£ÓÐËÄÖÖÀà¸ü¸Ä»áµ¼ÖÂÔËÐÐʱ¿ÌÒý·¢ 
IncompatibleClassChangExceptionÒì³£¡£ 
    * Ò»¸öÀàÖеıäÁ¿ÉùÃ÷ÓÉstatic±ä³É·Çstatic£¬¶øÆäËü·ÃÎʸÃÀàÕâÒ» 
±äÁ¿µÄÀàûÓб»ÖØÐ±àÒë¡£ 
    * Ò»¸öÀàÖеıäÁ¿ÉùÃ÷ÓÉ·Çstatic±ä³Éstatic£¬¶øÆäËü·ÃÎʸÃÀàÕâÒ» 
±äÁ¿µÄÀàûÓб»ÖØÐ±àÒë¡£ 
    * ÀàÖÐÉùÃ÷µÄij¸öÓò±»É¾³ý£¬¶øÆäËü·ÃÎʸÃÓòµÄÀàûÓб»ÖØÐ±àÒë¡£ 
    * ÀàÖÐÉùÃ÷µÄij¸ö·½·¨±»É¾³ý£¬¶øÆäËü·ÃÎʸ÷½·¨µÄÀàûÓб»ÖØÐ 
±àÒë¡£ 
 
ClassCastException 
     Èç¹ûÊÔͼ°Ñ¶ÔÏóoÇ¿ÖÆ³ÉClass C£¬¶øo¼È²»ÊÇClass CµÄʵÀý£¬Ò² 
²»ÊÇClass C×ÓÀàµÄʵÀý£¬Õâʱ±ã»á²úÉúClassCastException¡£ 
    class ClassCast { 
        public static void main (String args [ ] ) { 
             Object o = new Object( ); 
             String s =  (string) o; 
             s.length( ); 
        } 
    } 
 
NagativeArraySizeException 
Èç¹ûÒ»¸öÊý×éµÄ³¤¶ÈÊǸºÊý£¬Ôò»áÒý·¢NagativeArraySizeException 
£¨Êý×鸺ϱ꣩Òì³£¡£ÀýÈçÏÂÃæÀඨÒåµÄ´úÂëÔÚÔËÐÐʱÒý·¢ÕâÒ»Òì³££º 
    class NegArray { 
         public static void main(String args [ ]) { 
               int a [ ] = new int [-1]; 
               a[0] = 0; 
         } 
    } 
 
OutOfMemoryException 
µ±ÏµÍ³ÎÞ·¨ÔÙÏòÓ¦ÓóÌÐòÌṩÄÚ´æÊ±£¬»áÒý·¢ 
OutOfMemoryException£¨ÄÚ´æÒç³ö£©Òì³£¡£ÕâÖÖÒì³£Ö»ÄܳöÏÖÔÚ´´½¨Ð 
¶ÔÏóµÄʱºò£¬¼´new±»µ÷ÓõÄʱºò¡£ÀýÈ磬ÏÂÃæÒ»¶Î´úÂëÔÚÔËÐÐʱ¿Ì»á 
Òý·¢OutOfMemoryExceptionÒì³££º 
    class Link { 
         int a [ ] = new int [1000000]; 
         Link l; 
    } 
    Class OutOfMem { 
         public static void main(String args [ ]) { 
               Link root = new link( ); 
               Link cur = root; 
               while (true) { 
                    cur.l = new Link( ); 
                    cur = cur.l; 
               } 
         } 
     } 
 
NoClassDefFoundException 
Èç¹ûÒ»¸öÀà±»ÒýÓ㬵«ÔÚÔËÐÐʱ¿Ì£¬ÏµÍ³Ã»ÓÐÕÒµ½±»ÒýÓõÄÀ࣬Õâ 
ʱ»áÒý·¢NoClassDefFoundException£¨Î´ÕÒµ½ÀඨÒ壩Òì³£¡£ÀýÈ磬  
NoClassÀàµÄÉùÃ÷ÈçÏ£º 
     class NoClass { 
         public static void main(String args [ ]) { 
              C c = new  C ( ); 
         } 
     } 
     µ±NoClassÔËÐÐʱ£¬Èç¹û½âÊÍÆ÷ÕÒ²»µ½CÀ࣬Ôò»á²úÉú 
NoClassDefFoundException¡£ 
    ×¢Ò⣬ÔÚNoClass±»±àÒëʱCÀàÒ»¶¨Òª´æÔÚ¡£ 
 
IncompatibleType Exception 
     Èç¹ûÊÔͼΪһ½çÃæ×÷ʵÀý£¬Ôò»áÒý·¢IncompatibleTypeException£¨Àà 
ÐͲ»¼æÈÝ£©Òì³£¡£ÀýÈ磬 
ÏÂÃæµÄ´úÂë»áÒý·¢Ò»¸öIncompatibleTypeException¡£ 
     Interface I { 
     } 
     class IncompType { 
         public static void main(String args [ ]) { 
              I r = (I) new ("I"); 
         } 
     } 
 
ArrayIndexOutOfBoundsException 
ÊÔͼ·ÃÎÊÊý×éÖеÄÒ»¸ö·Ç·¨ÔªËØÊ±£¬»áÒý·¢ 
ArrayIndexOutOfBoundsException£¨Êý×éË÷ÒýÔ½½ç£©Òì³£¡£ÀýÈ磺 
    Class ArrayOut { 
         public static void main(String args [ ]) { 
               int a [ ]=new int[0]; 
               a[0]=0; 
         } 
     } 
 
UnsatisfiedLinkException 
Èç¹ûÒ»¸ö·½·¨±»ÉùÃ÷Ϊ±¾»ú£¬µ«¸Ã·½·¨ÔÚÔËÐÐʱ¿ÌÈ´²»ÄÜÁ¬½Óµ½Ò» 
¸öÀý³ÌÌåÉÏȥʱ£¬»á²úÉúUnsatisfiedLinkException£¨ÎÞ·¨Á¬½Ó£©Òì³£¡£ 
ÀýÈ磺 
    Class NoLink { 
         static native void foo( ); 
        public static void main(String args [ ]) { 
             foo( ); 
        } 
     } 
 
InternalException 
InternalException£¨ÄÚ²¿£©Òì³£ÊDz»Äܱ»Òý·¢µÄ¡£Ö»ÓÐÔÚÔËÐÐʧ°Ü×÷ 
Ò»ÖÂÐÔ¼ì²éʱ£¬²Å»áÒý·¢Õâ¸öÒì³£¡£ 
 
 
 
 
 
  
 

BBSˮľÇ廪վ¡Ã¾«»ªÇø