美文网首页
'深入理解Java虚拟机'2018-04-18

'深入理解Java虚拟机'2018-04-18

作者: lichao666 | 来源:发表于2018-04-18 17:32 被阅读0次

    Java代码编译时期是将Java文件编译为Class文件。
    Java代码执行时期:

    装载

    • JVM通过类的全限定名获取描述此类的.class文件,通过该文件将类的信息加载到JVM方法区,然后在堆中实例化一个java.lang.Class对象,作为方法区中这个类的入口。

    连接

    • 验证,确认类型符合Java语言的语义,并且不会危及JVM的完整性
    • 准备,为类变量(Static变量)分配内存,设置初值(通过内存清零实现,此阶段不执行Java代码),final修饰的常量初始值就是Java代码中的初始值
    • 解析,在类的常量池中寻找类,接口,方法和字段的符号引用,将符号引用替换为直接引用

    初始化

    • 为类变量赋予Java代码中的初始值

    对象生命

    类可以被使用了。调用类变量,类方法,实例化类等。实例化类会创建一个新的对象,开启该对象的生命周期。对象生命周期:

    • 对象实例化,在堆中为对象分配内存,清零,赋予正确的初始值
    • 垃圾收集,当对象不再被引用的时候
    • 对象终结,被垃圾收集后

    类卸载

    • 将类的内存空间清空

    相关文章

      网友评论

          本文标题:'深入理解Java虚拟机'2018-04-18

          本文链接:https://www.haomeiwen.com/subject/lacbkftx.html