ΪʲôÈç´Ë»ñÈ¡JavaÊý×éµÄ³¤¶È
¼ÇµÃvamcily ÔøÎÊÎÒ£º“Ϊʲô»ñÈ¡Êý×éµÄ³¤¶ÈÓÃ.length(³ÉÔ±±äÁ¿µÄÐÎʽ)£¬¶ø»ñÈ¡StringµÄ³¤¶ÈÓÃ.length()(³ÉÔ±·½·¨µÄÐÎʽ)£¿”
ÎÒµ±Ê±Ò»Ìý£¬¾õµÃÎʵúÜÓеÀÀí¡£×öͬÑùÒ»¼þÊÂÇ飬Ϊʲô²ÉÓÃÁ½ÖÖ·ç¸ñåÄÒìµÄ·ç¸ñÄØ£¿¿öÇÒ£¬JavaÖеÄÊý×éÆäʵÊÇÍ걸(full-fledged)µÄ¶ÔÏó£¬Ö±½Ó±©Â¶³ÉÔ±±äÁ¿£¬¿ÉÄܲ»ÊÇÒ»ÖÖºÜOOµÄ·ç¸ñ¡£ÄÇô£¬Éè¼ÆJavaµÄÄǰïÌì²ÅΪʲôÕâô×öÄØ£¿
´ø×ÅÕâ¸öÒÉÎÊ£¬ÎÒ²éÔÄÁËһЩ×ÊÁÏ£¬Ö÷ÒªÊǹØÓÚ“JVMÊÇÈçºÎ´¦ÀíÊý×锵ġ£
Êý×é¶ÔÏóµÄÀàÊÇʲô£¿
¼ÈÈ»Êý×é¶¼ÊǶÔÏó£¬ÄÇôÊý×éµÄÀ྿¾¹ÊÇÊ²Ã´ÄØ£¿µ±È»²»ÊÇjava.util.ArraysÀ²£¡ÎÒÃÇÒÔintһάÊý×éΪÀý£¬¿´¿´¾¿¾¹¡£
public class Main {
public static void main(String args[]){
int a[] = new int[10];
Class clazz = a.getClass();
System.out.println(clazz.getName());
}
}
ÔÚSUN JDK 1.6ÉÏÔËÐÐÉÏÊö´úÂ룬Êä³öΪ£º
[I
¿´ÆðÀ´Êý×éµÄÀàºÜÆæ¹Ö£¬·Çµ«²»ÊôÓÚÈκΰü£¬¶øÇÒÃû³Æ»¹²»ÊǺϷ¨µÄ±êʶ·û(identifier)¡£¾ßÌåµÄÃüÃû¹æÔò[1]¿ÉÒԲμûjava.lang.Class.getName()µÄjavadoc¡£¼òµ¥µÄ˵£¬Êý×éµÄÀàÃûÓÉÈô¸É¸ö'['ºÍÊý×éÔªËØÀàÐ͵ÄÄÚ²¿Ãû³Æ×é³É£¬'['µÄÊýÄ¿´ú±íÁËÊý×éµÄά¶È¡£
¾ßÓÐÏàͬÀàÐÍÔªËØºÍÏàͬά¶ÈµÄÊý×飬ÊôÓÚͬһ¸öÀà¡£Èç¹ûÁ½¸öÊý×éµÄÔªËØÀàÐÍÏàͬ£¬µ«Î¬¶È²»Í¬£¬ÄÇôËüÃÇÒ²ÊôÓÚ²»Í¬µÄÀà¡£Èç¹ûÁ½¸öÊý×éµÄÔªËØÀàÐͺÍά¶È¾ùÏàͬ£¬µ«³¤¶È²»Í¬£¬ÄÇôËüÃÇ»¹ÊÇÊôÓÚͬһ¸öÀà¡£
Êý×éµÄÀàÓÐÄÄЩ³ÉÔ±ÄØ£¿
¼ÈÈ»ÎÒÃÇÖªµÀÁËÊý×éµÄÀàÃûÊÇʲô£¬ÄÇô¾ÍÈ¥¿´¿´Êý×éµÄÀ྿¾¹ÊÇʲôÑùµÄ°É£¿ÓÐÄÄЩ³ÉÔ±±äÁ¿£¿ÓÐÄÄЩ³ÉÔ±·½·¨£¿lengthÕâ¸ö³ÉÔ±±äÁ¿ÔÚÄÄ£¿ÊDz»ÊÇûÓÐlength()Õâ¸ö³ÉÔ±·½·¨£¿
ÕÒÀ´ÕÒÈ¥£¬ÔÚJDKµÄ´úÂëÖÐûÓÐÕÒ´ò'[I'Õâ¸öÀà¡£ÏëÏëÒ²¶Ô£¬'[I'¶¼²»ÊÇÒ»¸öºÏ·¨µÄ±êʶ·û£¬¿Ï¶¨²»»á³öÏÖpublic class [I {...}ÕâÑùµÄJava´úÂë¡£ÎÒÃÇÔÝÇÒ²»¹Ü[IÀàÊÇËÉùÃ÷µÄ£¬ÔõôÉùÃ÷µÄ£¬ÏÈÓ÷´Éä»úÖÆÒ»Ì½¾¿¾¹°É¡£
public class Main {
public static void main(String[] args) {
int a[] = new int[10];
Class clazz = a.getClass();
System.out.println(clazz.getDeclaredFields().length);
System.out.println(clazz.getDeclaredMethods().length);
System.out.println(clazz.getDeclaredConstructors().length);
System.out.println(clazz.getDeclaredAnnotations().length);
System.out.println(clazz.getDeclaredClasses().length);
Ïà¹ØÎĵµ£º
JavaºÍÆäËûÓïÑÔ²»Í¬µÄÊÇ£¬JavaÊÇÔËÐÐÓÚJavaÐéÄâ»ú(JVM)¡£Õâ¾ÍÒâζ×űàÒëºóµÄ´úÂëÊÇÒÔÒ»ÖÖºÍÆ½Ì¨Î޹صĸñʽ±£´æµÄ£¬¶ø²»ÊÇijÖÖÌØ¶¨µÄ»úÆ÷ÉÏÔËÐеĸñʽ¡£ÕâÖÖ¸ñʽºÍ´«Í³µÄ¿ÉÖ´ÐдúÂë¸ñʽÓкܶàÖØÒªµÄÇø±ð¡£¾ßÌåÀ´Ëµ£¬²»Í¬ÓÚC»òÕߣÃ++³ÌÐò£¬Java³ÌÐò²»ÊÇÒ»¸ö¶ÀÁ¢µÄ¿ÉÖ´ÐÐÎļþ£¬¶øÊÇÓɺܶà·Ö¿ªµÄÀàÎļþ×é³É£¬Ã¿¸öÀàÎļþ¶ÔÓ¦Ò»¸ö ......
ʵ¼ÊÉÏ£¬ÎÒ¹ØÓÚjavaµÄ»ù´¡ÖªÊ¶µÄ90%ÒÔÉ϶¼À´×ÔThinking in Java¡£¶ÔÓÚÆäÖеÄsynchronized¹Ø¼ü×Ö£¬µ±Ê±¾ÍÊÇä¯ÀÀһϣ¬´ó¸ÅÖªµÀÒâ˼£¬Ò²Ã»ÓÐϸ¿´¡£ºóÀ´Ò»Ö±Ã»ÓÐÓùýÕâ¸ö¹Ø¼ü×Ö¡£×òÌì¿´Thinking in Patterns with JavaÖеÄObserverģʽ£¬¿´ÁËÆäÖеÄObservableÀàµÄÔ´Â룬·¢ÏÖÀïÃæ¼¸ºõËùÓеķ½·¨¶¼ÓÃÁËsynchronized¹Ø¼ü×Ö£¨²»ÊÇÈ ......
8.9 ³éÏóÀàºÍ½Ó¿Ú
ÔÚʵ¼ÊµÄÏîÄ¿ÖУ¬Õû¸öÏîÄ¿µÄ´úÂëÒ»°ã¿ÉÒÔ·ÖΪ½á¹¹´úÂëºÍÂß¼µÄ´úÂë¡£¾ÍÏñ½¨Ôì·¿ÎÝʱ£¬ÐèÒªÊ×ÏȴÕû¸ö·¿ÎݵĽṹ£¬È»ºóÔÙϸ»¯·¿ÎÝÏà¹ØµÄÆäËüµÄ½á¹¹£¬Ò²ÏñÖÆÔìÆû³µÊ±£¬ÐèÒªÊ×ÏÈÖÆ×÷Æû³µµÄ¿ò¼Ü£¬È»ºó²ÅÊǰ²×°Åä¼þÒÔ¼°ÃÀ»¯µÈ¹¤×÷¡£³ÌÐòÏîÄ¿µÄʵÏÖÒ ......
8.9.2 ½Ó¿Ú
½Ó¿Ú(Interface)ÊÇÒ»ÖÖ¸´ºÏÊý¾ÝÀàÐÍ¡£
ÖÁ´Ë£¬JavaÓïÑÔµÄËùÓÐÊý¾ÝÀàÐͽéÉÜÍêÁË£¬ÏÂÃæ½øÐÐÒ»¸ö¼òµ¥µÄ×ܽᡣJavaÓïÑÔµÄÊý¾ÝÀàÐÍ·ÖΪÁ½´óÀࣺ»ù±¾Êý¾ÝÀàÐͺ͸´ºÏÊý¾ÝÀàÐÍ£¬ÆäÖлù±¾Êý¾ÝÀàÐÍÓÐ8ÖÖ£¬¸´ºÏÊý¾ÝÀà ......
8.9.3 ³éÏóÀàºÍ½Ó¿ÚµÄ±È½Ï
³éÏóÀàºÍ½Ó¿Ú¶¼ÊǽøÐÐÃæÏò¶ÔÏóÉè¼ÆÊ±×¨ÓõÄÉè¼Æ½á¹¹£¬ÔÚʵ¼Ê½øÐÐÏîÄ¿Éè¼ÆÊ±£¬¾³£ÐèÒª¿¼ÂǵÄÎÊÌâ¾ÍÊÇ——“ʹÓóéÏóÀ໹Êǽӿڔ£¿ÏÂÃæÍ¨¹ý¶ÔÓÚ³éÏóÀàºÍ½Ó¿Ú½øÐмòµ¥µÄ±È½Ï£¬ÊìϤÁ½ÕßÖ®¼äµÄÇø±ðºÍÁªÏµ£¬´Ó¶øÔÚʵ¼ÊÉè¼ÆÊ±Ê ......