美文网首页java小白的进阶之路
浅谈java类的加载过程

浅谈java类的加载过程

作者: 一只很懒很懒的虫 | 来源:发表于2018-03-23 00:24 被阅读11次

    首先一个程序由我们编写的.java文件开始通过javac编译成二进制文件。此时jvm会将装载进来的二进制文件,解析成能被运行的class对象。

      而在类的加载过程中并不是直接将所有的类一次性加载进来的,而是在需要的时候再找到对应的class加载。

    . class文件被装载后,会经历链接的阶段,链接又包括检验,检验是否与jvm匹配,然后是为类变量分配内存,同时设置初值。而final定义的类变量在编译的时候就被分配空间了。最后是解析。解析主要是针对常量池中的符号引用转化为具体的直接引用。就是为直接引用直接指向目标。

    到初始化阶段才真正开始执行代码。此时设置的初值会覆盖原本的默认值。

    最后在没有引用指向该变量的时候被垃圾回收。

    这边还要提到类的加载器,有boot,扩张还有class以及父类委托机制。而类的加载过程全由类加载器来完成。

相关文章

网友评论

    本文标题:浅谈java类的加载过程

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