日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java类加载及new对象的过程

發布時間:2025/3/12 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.將子類的內存地址賦值給棧中的引用對象。?

public class Father {// 靜態變量public static String staticField = "父類--靜態變量";public String field = "父類--普通變量";// 靜態塊static {System.out.println(staticField);System.out.println("父類--靜態塊");}// 初始化塊{System.out.println(field);System.out.println("父類--普通塊");}// 構造器public Father() {System.out.println("父類--構造器");} } public class Son extends Father{// 靜態變量public static String staticField = "子類--靜態變量";// 變量public String sField = "子類--普通變量";// 靜態塊static {System.out.println(staticField);System.out.println("子類--靜態塊");}// 初始化塊{System.out.println(sField);System.out.println("子類--普通塊");}// 構造器public Son() {System.out.println("子類--構造器");}public static void main(String[] args) {System.out.println("----------------------one--------------------");Son son = new Son();System.out.println("----------------------two-------------------");Son son2 = new Son();}}

?

總結

以上是生活随笔為你收集整理的java类加载及new对象的过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。