java學習之反射初接觸

 

 反射就是把java中各個成分(比如方法,屬性,package,數組之類的有統一名字,又能抽象出來的東西)映射成java中相應的各種類

 

字節碼:當加載類時,先把類的二進制字節碼加載到內存中,再用字節碼複製一個又一個對象

 

得到字節碼方式:如果內存中已經存在該字節碼,則返回該字節碼,如不存在,則先加載,再返回加載的字節碼

 

三種方式獲得字節碼:

 

1.   對象.getClass();

2.   類.Class

3.  Class.forName("");

 

如:

  String str= “”;

  Class cs1= str.getClass();

  Class cs2= String.Class();

  Class cs3= Class.forName("java.lang.String");

 

public class ReflectTest {
    public static void main(String args[]) {
        String str1="";
        Class cls1 = str1.getClass();
        Class cls2 = String.class;
        try {
            Class cls3 = Class.forName("java.lang.String");
            System.out.println(cls1==cls3);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println(cls1==cls2);

        System.out.println(cls1.isPrimitive());
        //String不是基本類型,isPrimitive判斷是否爲基本類型
        
    }

}

也就是說,String類型的實例對象他們因爲字節碼相同

所以他們相等

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章