2017-07-11 100 views
-1

當我們運行Java應用程序時,我們知道要加載的第一個對象是java.lang.Object。但是,java.lang.Object具有拋出異常的方法,如CloneNotSupportedExceptionInterruptedException,這反過來是其他對象。Java應用程序啓動 - 如何創建第一個對象

問題是:當java.lang.Object剛剛被加載時,如何讓它的子對象(例如異常對象)被創建?

+2

請不要在這裏張貼問題之前,一些研究。 https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-5.html –

+0

通過「創建」,我假設你的意思是「加載」? – shmosel

+0

是創建意味着加載 – Shivaprasad

回答

3

loadedinstantiated是兩個不同的東西。

粗糙解釋:

loaded指JVM裝載的類到它的基類加載器。這使得該類可用於實例。當JVM啓動時,它首先通過使用/鏈接的文件加載所有類,而沒有實例化它們。這意味着,當第一個new Object()創建時,Object使用的例外已知。這仍然是一個聲明。只有在引發特定異常時纔會創建該異常的實例。

對於技術上是正確的解釋見這@Jim駐軍已經提到的鏈接:

JVM: Loading, Linking, and Initializing

+0

謝謝!爲簡短回答和指導。 – Shivaprasad

相關問題