第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

JVM運(yùn)行和類加載的全過程

標(biāo)簽:
Java

类的加载机制

JVM把class文件加载到内存,并对数据进行校验,解析和初始化,最终形成JVM可以直接使用的Java类型的过程。

加载
将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区中的运行时数据结构,在堆中生成一个代表这个类文件的java.lang.Class对象,作为方法区类数据的访问接口。-----这个过程需要类加载器参与
链接
验证:确保加载的类信息符合JVM规范,没有安全方面的问题
准备:正式为类变量(static变量)分配内存并设置类变量初始值的阶段,这些内存都将在方法区中进行分配
解析:虚拟机常量池内的符号引用替换为直接引用的过程。
初始化
初始化阶段是执行类构造器<clinit>()方法的过程。类构造器<clinit>()方法是由编译器自动收集类中所有变量的赋值动作和静态语句块中的语句合并产生的。
当初始化一个类的时候,如果发现其父类还没有进行初始化,则需要先将其父类进行初始化。
虚拟机会保证一个类的<clinit>()方法在多线程环境中能被正确的加锁和同步。
当访问一个java类的静态域时,只有真正声明这个域的类才会被初始化。
jvm执行类加载的顺序

首先在一个类中找到主函数。主函数中实例化了一个类
这时候首先执行这个类中的静态代码块
在执行类的构造方法,
然后再执行类中的其他方法
方法区:

静态变量
静态方法
常量池
类的代码 堆:
java.lang.Class对象 栈:
main方法的栈
静态变量与静态域其实是一回事

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消