JVM(十一) 運行時包

由同一類加載器加載的屬於相同包的類組成了運行時包。

決定兩個類是不是屬於同一個運行時包,不僅要看它們的包名是否相同,還要看定義類加載器是否相同。

只有屬於同一運行時包的類才能互相訪問包可見(即默認訪問級別)的類和類成員。這樣的限制能避免用戶自定義的類冒充核心類庫的類,去訪問核心類庫的包可見成員。

假設用戶自己定義了一個類java.lang,Spy,並由用戶自定義的類加載器加載,由於java.lang.Spy和核心類庫java.lang.*由不同的加載器加載,它們屬於不同的運行時包,所以java.lang.Spy和核心類庫java.lang.*由不同的加載器加載,它們屬於不同的運行時包,所以java.lang.Spy不能訪問核心類庫java.lang包中的包可見成員。

發佈了254 篇原創文章 · 獲贊 159 · 訪問量 64萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章