天天看點

筆記————反射、動态代理、多線程

JAVA反射機制能夠使java擁有動态性。 在運作狀态中,能夠擷取能某個類的所有屬性和方法;

對于任意一個對象,能夠調用它的任意一個方法和屬性;這種能夠 動态地 擷取的資訊、調用對象的方法的功能稱為java的反射機制。

用到反射,必須認識到:類對象(Class類)每一個位元組碼檔案對應的Class類型的對象

在java中,類是最小的機關。而Class 類 表示正在運作的 Java 程式中的類或接口。當JVM讀取到類時,會發生類加載(類加載知識,見以前筆記),生成Class類的對象。

那麼,可以通過構造方法自己建立類對象嗎?

當然。。。。不能,Class沒有公共構造方法(被私有化了),Class對象隻能在類加載時,由虛拟機JVM以及通過 類加載器中的 defineClass方法 自動構造。

通過Java的反射 ,在程式運作時建立一個實作某些給定接口的實作類(動态代理類)和對象

代理的接口在運作時才知道具體的實作。

proxy:就是代理對象,newProxyInstance方法的傳回對象

method:調用的方法

args: 方法的參數

程式: 一組能識别和執行的指令。

程序:正在運作的程式,在記憶體中有指定的區域 ,由CPU進行執行與計算操作。

線程:作業系統能夠進行運算排程的最小機關,一個程序可以開啟多個線程,有一個主線程來調用本程序中的其他線程。

一個作業系統中可以有多個程序,一個程序中可以包含一個或多個線程。

計算機中,一個 cpu隻能執行一個程序中的一個線程。一個CPU隻能串行

并行是指同一時刻多個CPU可以處理多件事 稱為并行,類似于兩輛車并排跑

一個CPU隻能執行一個程序中的一個線程。線上程運作時,cpu會随機給某個線程配置設定時間片(既你可以工作多長時間),當時間片用完時,若該線程還沒有完成工作,cpu将被剝奪并配置設定給另一個線程。将目前線程挂起,如果線程在時間片用完之前阻塞或結束,則cpu立刻進行切換, 避免CPU資源浪費,當再次切換到之前挂起的線程,恢複現場,繼續執行。

筆記————反射、動态代理、多線程

Thread類本質上是實作了Runnable接口的一個執行個體,代表一個線程的執行個體,啟動線程的唯一方法就是通過Thread類的start()執行個體方法

如果類已經extends另一個類,就無法多繼承,可以實作一個Runnable接口

void run()使用實作接口Runnable的對象建立線程時,啟動該線程将導緻在獨立執行的線程中調用對象的run()方法