javaѧϰ֮·´Éä»úÖÆ
ʲôÊÇ·´Éä
java³ÌÐò¿ÉÒÔÔÚÔËÐÐÆÚ¼ä¶¯Ì¬µÄ¼ÓÔØ¡¢½âÎöºÍʹÓÃһЩÔÚ±àÒë½×¶Î²¢²»È·¶¨µÄÀàÐÍ£¬ÕâÒ»»úÖÆ±»³ÆÎª“·´É䣨reflection£©”»òÕß“ÄÚÊ¡£¨introspection£©”.
·´Éä»úÖÆÌṩµÄ¹¦ÄÜ
1£¬¼ÓÔØÔËÐÐʱ²ÅÄÜÈ·¶¨µÄÀàÐÍ
2£¬½âÎöÀàµÄ½á¹¹¡¢»ñÈ¡ÆäÄÚ²¿ÐÅÏ¢
3£¬²Ù×÷¸ÃÀàÐÍ»òÆäʵÀý
1¡··ÃÎÊÊôÐÔ
2¡·µ÷Ó÷½·¨
3¡·´´½¨Ð¶ÔÏó
java.lang.class Àà
classÀàµÄʵÀýÓÃÓÚ±íʾÔËÐÐʱµÄJAVAÊý¾ÝÀàÐÍ£¬°üÀ¨Àà¡¢½Ó¿Ú¡¢Êý×顢ö¾Ù¡¢×¢½âºÍ»ù±¾Êý¾ÝÀàÐÍ
ÔÚÀà¼ÓÔØÊ±£¬ JavaÐéÄâ»ú»á×Ô¶¯´´½¨ÏàÓ¦µÄclass¶ÔÏó
java.lang.reflect°ü
1£¬java.lang.reflect.fleld
2£¬java.lang.reflect.Method
3£¬java.lang.reflect.Costructor
4£¬java.lang.reflect.Modifer
5£¬java.lang.reflect.Array
ʹÓ÷´»úÖÆµÄ»ù±¾²½Öè
»ñȡĿ±êÀàÐÍÏàÓ¦µÄclass¶ÔÏó
µ÷ÓÃClass¶ÔÏóÄÚÊ¡·½·¨»ñȡĿ±êÀà³ÉÔ±ÐÅÏ¢
·ÃÎÊÄ¿±êÀà·½·¨ÐÅÏ¢/²Ù×÷Ä¿±êÀà³ÉÔ±
ÀýÒ»
package com.manager;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Scanner;
public class TestReflection01 {
public static void main(String[] args) {
System.out.println("input the type of the class");
Scanner scan = new Scanner(System.in);
String className= scan.next();
System.out.println("current class name : " + className);
try {
//»ñÈ¡CLASS¶ÔÏó
Class c = Class.forName(className);
//½âÎöÊôÐÔÐÅÏ¢
Field[] fs = c.getFields();
for(Field f : fs){
System.out.println("----------------
Ïà¹ØÎĵµ£º
ÏÈÀ´Á˽âÒ»ÏÂÁ´±íģʽµÄÔÀí£º
Ê×ÏÈдһ¸öJavaBean£¬ÄÚÈÝÊÇÒªÌí¼ÓµÄÔªËØºÍ¸ÃÔªËØµÄ½Úµã¡£
public class NodeBean implements Serializable
{
private Object data; //ÔªËØ±¾Éí
private NodeBean next; //ÏÂÒ»¸ö½Úµã
&n ......
Ò»£¬Ïß³Ì״̬µÄ¼ì²é
Ò»°ãÇé¿öÏÂÎÞ·¨È·¶¨Ò»¸öÏ̵߳ÄÔËÐÐ״̬£¬¶ÔÓÚÕâЩ´¦ÓÚδ֪״̬µÄỊ̈߳¬¿ÉÒÔͨ¹ýisAlive()·½·¨ÓÃÀ´È·¶¨Ò»¸öÏß³ÌÊÇ·ñÈÔ´¦Ôڻ״̬¡£µ±È»¼´Ê¹´¦Óڻ״̬µÄÏß³ÌÒ²²¢²»Òâζ×ÅÕâ¸öÏß³ÌÒ»¶¨ÕýÔÚÔËÐУ¬¶ÔÓÚÒ»¸öÒÑ¿ªÊ¼ÔËÐе«»¹Ã»ÓÐÍê³ÉÈÎÎñµÄỊ̈߳¬Õâ¸ö·½·¨·µ»ØÖµÎªtrue¡£
......
Ò»°ã£¬ÓÐ3ÖÖʹÓÃËø½øÐÐͬ²½µÄ·½·¨
a.·½·¨Í¬²½£¬ÀýÈçpublic synchronized void xxx()...
b.¾²Ì¬·½·¨Í¬²½,ÀýÈçpublic static synchronized void xxx()...
c.³ÌÐò¿éͬ²½,ÀýÈç
...
&n ......
ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁËרÃÅ»úÖÆÒÔ½â¾öÕâÖÖ³åÍ»£¬ÓÐЧ±ÜÃâÁËͬһ¸öÊý¾Ý¶ÔÏó±»¶à¸öÏß³Ìͬʱ·ÃÎÊ¡£
ÐèÒªÃ÷È·µÄ¼¸¸öÎÊÌ⣺
1)synchronized¹Ø¼ü×Ö¿ÉÒÔ×÷Ϊº¯ÊýµÄÐÞÊηû£¬Ò²¿É×÷Ϊº¯ÊýÄÚµÄÓï¾ä£ ......
Ê×ÏÈ¿´Çå³þ¼¸ÖÖ³£ÓõÄ×Ö·û¼¯±àÂë(javaÓïÑÔÊDzÉÓÃunicode×Ö·û¼¯±àÂëÀ´±íʾ×Ö·ûÓë×Ö·û´®µÄ)£º
¡¡¡¡ASCII(American Standard Code for Information Interchange£¬ÃÀ¹úÐÅÏ¢»¥»»±ê×¼´úÂë)£¬ÊÇ»ùÓÚ³£ÓõÄÓ¢ÎÄ×Ö·ûµÄÒ»Ì×µçÄÔ±àÂëϵͳ¡£ÎÒÃÇÖªµÀÓ¢ÎÄÖо³£Ê¹ÓõÄ×Ö·û¡¢Êý×Ö·ûºÅ±»¼ÆËã»ú´¦Àíʱ¶¼ÊÇÒÔ¶þ½øÖÆÂëµÄÐÎʽ³öÏֵġ£ÕâÖÖ¶þ½ø ......