一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務(wù)器之家 - 編程語言 - Java教程 - Java類加載初始化的過程及順序

Java類加載初始化的過程及順序

2021-06-24 10:03pigdreams Java教程

今天小編就為大家分享一篇關(guān)于Java類加載初始化的過程及順序,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

java類的加載說明

  • java類的編譯代碼都存在于它自己的獨(dú)立文件中(class),該文件只在需要使用程序代碼時(shí)才會(huì)被加載。
  • 類加載在創(chuàng)建類的第一個(gè)對(duì)象時(shí)發(fā)生,但當(dāng)訪問static域或static方法時(shí),也會(huì)發(fā)生加載。
  • 構(gòu)造器也是static方法,盡管static關(guān)鍵字沒有顯式寫出,故可進(jìn)一步說,類是在任何static成員被訪問時(shí)加載的。

示例說明加載過程

示例源于《java編程思想》

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//父類
public class superclass {
  protected int super_a;
  private int super_b=9;
  protected static int super_x=printstr("superclass static init super_x");
  public superclass(){
    system.out.println("super class constructor action.... ");
    system.out.println("super_a="+super_a);
    system.out.println("super_b="+super_b);
    super_a=33;
  }
  static int printstr(string string){
    system.out.println(string);
    return 47;
  }
}
//子類
public class subclass extends superclass{
  private static int sub_b=printstr("subclass static init sub_b");
  public subclass(){
    system.out.println("sub class constructor action.... ");
    system.out.println("sub class super_a="+super_a);
    system.out.println("sub class sub_b="+sub_b);
  }
}
//程序入口,執(zhí)行代碼
  public static void main(string[] args) {
    subclass subclass=new subclass();
  }

###執(zhí)行結(jié)果

?
1
2
3
4
5
6
7
8
superclass static init super_x
subclass static init sub_b
super class constructor action....
super_a=0
super_b=9
sub class constructor action....
sub class super_a=33
sub class sub_b=47

由結(jié)果得出類的加載過程與順序

  • 如果一個(gè)類有父類,則父類會(huì)先被加載。static變量會(huì)優(yōu)先被初始化執(zhí)行,先初始化父類的super_x,再初始化子類的sub_b。
  • 所有非靜態(tài)成員變量都會(huì)賦于一個(gè)默認(rèn)值,如果是基本類型則為默認(rèn)值,如果是對(duì)象引用則為null,這是通過將對(duì)象內(nèi)存設(shè)為二進(jìn)制零值而一舉生成的。
  • 調(diào)用父類構(gòu)造函數(shù),但先不執(zhí)行里面的代碼。父類的非靜態(tài)成員變量會(huì)被賦值,即是執(zhí)行=號(hào)右邊內(nèi)容,將9賦值給super_b.
  • 執(zhí)行父類的構(gòu)造函數(shù)里的代碼。
  • 子類的非靜態(tài)成員變量賦于默認(rèn)值。
  • 執(zhí)行子類構(gòu)造函數(shù)里的代碼。

加載過程流程圖

Java類加載初始化的過程及順序

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)服務(wù)器之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

原文鏈接:https://blog.csdn.net/pigdreams/article/details/74907202

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女撒尿毛片免费看 | 日韩精品成人a在线观看 | xxxx意大利xxxxhd| 欧美精品国产第一区二区 | 全黄一级裸片视频免费 | 无码人妻精品一区二区蜜桃在线看 | 国产成人精品一区二三区在线观看 | 日韩精品一区二区三区毛片 | 色戒真做gif动图 | 五月天婷婷精品免费视频 | 思敏1一5集国语版免费观看 | 国产综合欧美日韩视频一区 | 护士让我吃奶我扒她奶 | chinesemature丰满成熟 | 久久成人永久免费播放 | 狠狠的撞进去嗯啊h女强男视频 | 天天色天天色天天色 | 嫩草影院永久在线一二三四 | 国产资源视频在线观看 | 香港论理午夜电影网 | 问一问免费咨询 | 男人的私人影院 | 国产五月天在线 | 无遮掩60分钟从头啪到尾 | caoporen97免费公开视频 | 美女翘臀内疯狂进出 | 明星ai智能人脸替换造梦在线播放 | 私人影院免费观看 | 国产香蕉一区二区精品视频 | 日韩精品中文字幕久久 | 麻豆网站视频国产在线观看 | 亚洲阿v天堂在线2017 | 香蕉久久网 | 日本成熟bbxxxxxxxx | 九九九精品视频 | 色综合久久天天综合观看 | 高h短篇校园1v1| 成年人视频免费在线观看 | 成人国产在线播放 | 欧美成人aa久久狼窝动画 | 成人啪精品视频免费网站 |