java类加载及new对象的过程
生活随笔
收集整理的這篇文章主要介紹了
java类加载及new对象的过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Son son?= new Son();?
這句話到底做了什么事情呢??
1.javac編譯.java源文件形成.class字節碼文件;
2.new Sub()?對象時,先檢查有沒有父類,有父類,類加載器(ClassLoader)先將父類的Class文件讀入內存,創建一個java.lang.Class對象,然后加載子類,類加載器將子類的Class文件讀入內存,創建一個java.lang.Class對象;?
3.先初始化父類的靜態屬性,再初始化父類的靜態代碼塊;?
4.再初始化子類的靜態屬性,再初始化子類的靜態代碼;?
5.在堆內存中分配內存空間,分配內存地址,此時是因為父類的特有屬性才在堆內存中為父類對象分配空間。?
6.初始化父類的特有屬性。?
7.初始化父類的構造代碼塊。?
8.初始化父類對象相應的構造方法。?
9.在堆內存中分配內存空間,分配內存地址,此時是因為子類的特有屬性才在堆內存中為子類對象分配空間的。?
10.初始化子類的特有屬性。?
11.初始化子類的構造代碼塊。?
12.初始化子類相應的構造方法。?
13.將子類的內存地址賦值給棧中的引用對象。?
?
總結
以上是生活随笔為你收集整理的java类加载及new对象的过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php session 反序列化,PHP
- 下一篇: 链表的基本操作——反转与删除