亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁(yè) > IT技術(shù) > 其他 > 正文

              概述類的加載器及類加載過(guò)程
              2022-05-11 11:03:59


              概述類的加載器及類加載過(guò)程_初始化

              • 類加載器子系統(tǒng)負(fù)責(zé)從文件系統(tǒng)或者網(wǎng)絡(luò)中加載Class文件,class文件在文件開(kāi)頭?有特定的文件標(biāo)識(shí)。
              • ClassLoader只負(fù)責(zé)class文件的加載,至于它是否可以運(yùn)行,則由Execution Engine決定。
              • 加載的類信息存放于一塊稱為方法區(qū)的內(nèi)存空間。除了類的信息外,方法區(qū)中還會(huì)存放運(yùn)行時(shí)常量池信息,可能還包含字符串字面量(這部分常量信息是Class文件中常量池部分的內(nèi)存映射)

              概述類的加載器及類加載過(guò)程_方法區(qū)_02

              概述類的加載器及類加載過(guò)程_開(kāi)發(fā)語(yǔ)言_03

              類的加載過(guò)程

              概述類的加載器及類加載過(guò)程_開(kāi)發(fā)語(yǔ)言_04

              概述類的加載器及類加載過(guò)程_方法區(qū)_05

              加載?

              1、通過(guò)一個(gè)類的全限定名獲取定義此類的二進(jìn)制字節(jié)流

              2、將這個(gè)字節(jié)流所代表的靜態(tài)存儲(chǔ)結(jié)構(gòu)轉(zhuǎn)化為方法區(qū)的運(yùn)行時(shí)數(shù)據(jù)結(jié)構(gòu)

              3、在內(nèi)存中生成一個(gè)代表這個(gè)類的 java.lang.Class 對(duì)象,作為方法區(qū)這個(gè)類的各種數(shù)據(jù)的訪問(wèn)入口。

              概述類的加載器及類加載過(guò)程_方法區(qū)_06

              鏈接

              概述類的加載器及類加載過(guò)程_初始化_07

              初始化

              概述類的加載器及類加載過(guò)程_開(kāi)發(fā)語(yǔ)言_08

              虛擬機(jī)保證一個(gè)類加載一次的代碼演示

              package chapter01.com.wust.yq;

              public class DeadThreadTest {

              public static void main(String[] args) {
              Runnable r = new Runnable() {
              @Override
              public void run() {
              System.out.println(Thread.currentThread().getName() + "開(kāi)始");
              //這一步的目的就是為了加載類
              DeadThread dt = new DeadThread();
              System.out.println(Thread.currentThread().getName() + "結(jié)束");
              }
              };

              Thread t1 = new Thread(r, "線程1");
              Thread t2 = new Thread(r, "線程2");

              t1.start();
              t2.start();
              }

              }

              class DeadThread {
              static {
              System.out.println(Thread.currentThread().getName() + "初始化當(dāng)前類");
              try {
              Thread.sleep(10000);
              } catch (InterruptedException e) {
              e.printStackTrace();
              }
              }
              }

              結(jié)果展示?

              概述類的加載器及類加載過(guò)程_初始化_09


              本文摘自 :https://blog.51cto.com/u

              開(kāi)通會(huì)員,享受整站包年服務(wù)立即開(kāi)通 >