激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - 圖文詳解Java中class的初始化順序

圖文詳解Java中class的初始化順序

2020-06-04 11:53曉來誰聽風雨聲 JAVA教程

網上有很多關于Java中class的初始化順序文章,但是本文通過圖文更加詳細的介紹了Java中class的初始化順序,并對class的裝載順序進行了講解,下面一起來看看。

class的裝載

在講class的初始化之前,我們來講解下class的裝載順序。

以下摘自《Thinking in Java 4》

由于Java 中的一切東西都是對象,所以許多活動

變得更加簡單,這個問題便是其中的一例。正如下一章會講到的那樣,每個對象的代碼都存在于獨立的文件中。除非真的需要代碼,否則那個文件是不會載入的。通常,我們可認為除非那個類的一個對象構造完畢,否則代碼不會真的載入。由于static 方法存在一些細微的歧義,所以也能認為“類代碼在首次使用的時候載入”。

首次使用的地方也是static 初始化發生的地方。裝載的時候,所有static 對象和static 代碼塊都會按照本來的順序初始化(亦即它們在類定義代碼里寫入的順序)。當然,static 數據只會初始化一次。

簡要的說就是,在類有繼承關系時,類加載器上溯造型,進行相關類的加載工作。

比如:

?
1
2
Class B extends Class A
當我們new B()時,類加載器自動加載A的代碼

class的初始化順序

通常是以下這樣的初始化順序:

(static對象和static代碼塊,依據他們的順序進行初始化)>成員變量>構造函數

圖文詳解Java中class的初始化順序

測試代碼

?
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class ClassInit {
 
  /**
   * @Title:       main
   * @Description:   類初始化順序測試
   * @param:       @param args 
   * @return:     void 
   * @throws
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub   
    new B();
  }
 
}
 
class A {
  static{
    System.out.println("A的static代碼塊...");
  }
  public String s1 = prtString("A的成員變量...");
  public static String s2 = prtString("A的static變量...");
  public A(){
    System.out.println("A的構造函數...");
  }
 
  public static String prtString(String str) {
    System.out.println(str);
    return null;
  }
}
 
class B extends A{
  public String ss1 = prtString("B的成員變量...");
  public static String ss2 = prtString("B的static變量...");
  public B(){
    System.out.println("B的構造函數...");
  }
  private static A a = new A();
  static{
    System.out.println("B的static代碼塊...");
  }
  {
    System.out.println("代碼塊...");
  
}

測試結果

A的static代碼塊...
A的static變量...
B的static變量...
A的成員變量...
A的構造函數...
B的static代碼塊...
A的成員變量...
A的構造函數...
B的成員變量...
代碼塊...
B的構造函數...

總結

以上就是Java中class的初始化順序的全部內容,希望對大家使用Java能有所幫助。

原文鏈接:http://www.jianshu.com/p/73901f972852

延伸 · 閱讀

精彩推薦
264
主站蜘蛛池模板: 国产乱xxxx| 日韩精品一区二区三区中文 | 亚洲精品欧美二区三区中文字幕 | 欧洲成人一区 | 久久精品一区二区三区国产主播 | 国产精品18久久久久久久久 | 亚州欧美视频 | 日韩精品一区二区久久 | 久久凹凸 | 久久久新 | 中文日韩欧美 | 亚洲天堂成人在线 | av在线免费观看国产 | 国产1区在线 | 亚洲精品一区二区三区大胸 | 免费网站看毛片 | 欧美日本91精品久久久久 | freexxxhd喷水| 国产精品久久久久av | 日美黄色片 | 精品成人网 | 久久久久久久午夜 | asiass极品裸体女pics | 午夜久久久久 | 99精品电影 | 九九精品在线 | 成人视屏网站 | 成人一级片毛片 | 亚洲最大的成人网 | 国产一区二区精品免费 | 免费看黄色三级毛片 | 狠狠干夜夜操 | 欧美一级高清片_欧美高清aa | 蜜桃视频最新网址 | 九九视屏| 深夜福利视频绿巨人视频在线观看 | 色婷婷综合久色aⅴ | 一本色道久久99精品综合蜜臀 | 欧美成人一区二区三区 | 看av网址| 二区三区四区 |