但是一個具體的對象具體的屬性值是什麼,不管,只管你該不該有這個屬性,
而不管該屬性的值是什麼,這就是Java類的作用;
---------------------------------------------------------------
2.Java中的各個類,也是一種事物,他們屬於同一類事物,都是Java中的類,我們當然
可以用一個類來描述這類事物,這個類的就是Class;
人-->Person
Java類-->Class
---------------------------------------------------------------
3. //什麼是字節碼呢?
-->當我們在程序中用到了Person這個類的時候,首先要從硬盤上把這個
類的二進制碼(編譯過的.Class文件)加載到內存中來,纔可以去創建
一個個對象,源程序中有幾個類,內存中就有幾份字節碼,每一份字節碼
就是一個Class類的實例對象。
//p1就是內存中的 Person類對應的字節碼生成的對象Person p1 = new Person(); Person p2 = new Person();
Date 類
Class cls1= Date.class //Class的實例對象代表內存中的一份字節碼;
//Date.class就表示Date類在內存中的字節碼
Class cls2= Person.class//同上;
p1.getClass();//-->Object類中的方法
Class.forName("java.lang.String");//Class的靜態方法
-->Class.forName("*.*.*");方法的作用?
作用是返回所加載的類的字節碼,如果這個類已經被加載進來了(java虛擬機中有該字節碼),
則直接從緩存中調用並返回;
如果該類沒有被加載過(java虛擬機中沒有該字節碼),則調用類加載器加載進來以後,把那份字節碼緩存起來
同時返回該字節碼
---------------------------------------------------------------
4.得到字節碼的方式有三種(上題):
·· 類名.class
·· 對象.getClass();
·· Class.forName("包名.類名"); 做反射的時候常用第三種,通常在寫源程序的時候
還不知道類的名字,可以把"包名.類名"換成一個
字符串變量,在程序運行的時候臨時賦值
---------------------------------------------------------------
5.舉例:
public class RefilectTest {
public static void main(String[] args)throws Exception{
String str1 = "abc",
Class cls1 = str1.getClass();
Class cls2 = String.class;
Class cls3 = Class.forName("java.long.String");
System.out.println(cls1 ==cls2); //true
System.out.println(cls2 ==cls3); //true
}
}
---------------------------------------------------------------
6.public boolean isPrimitive()
判定指定的 Class 對象是否表示一個基本類型。
有九種預定義的 Class 對象,表示八個基本類型和 void。
這些類對象由 Java 虛擬機創建,與其表示的基本類型同名,
即 boolean、byte、char、short、int、long、float 和 double。
這些對象僅能通過下列聲明爲 public static final 的變量訪問,
也是使此方法返回 true 的僅有的幾個 Class 對象。
int.class.isprimitive();//true
int[].class.isPrimitive();//false 數組類型的Class實例對象
---------------------------------------------------------------
7.總之,只要是在源程序中出現的類型,都有各自的Class實例對象,
例如:int[],void ...
---------------------------------------------------------------
8.得到一個Class對象,可以通過 Class.isArray(),Class.isPrimitive()
來知道它到底是什麼類型
---------------------------------------------------------------