reflection
classloader的類加載機制
并非一次性加載。
需要的時候加載(運作期間動态加載)。
java-verbose:class可以觀察類的具體加載過程。
static語句塊在加載後執行一次。
dynamic語句塊每次new新的對象都會執行,等同于構造方法中語句,用得也比較少。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIzUDM5UTMwATM0ATOwYTMwIzLcRXZu5ibkN3Yuc2bsJmLn1Wavw1LcpDc0RHaiojIsJye.jpg)
首先bootstrap class loader把其他的class loader給load進來,然後不同的class loader去load不同的class。
這裡解釋一下getparent這個方法不是得到父類,因為他們之間沒有繼承關系,隻是得到加載的順序,是層次關系。
classloader在load class的時候首先找上一層loader是不是load過了,如果已經load過了就不會再load了,安全性非常好。這樣自己寫的string.class永遠沒有機會執行。