当前位置:   article > 正文

Java 面试之 JVM_java de jvm 需要安装阿妈

java de jvm 需要安装阿妈

JVM结构图

JVM

类加载机制

类加载的五个过程

  • 加载类加载器获二进制字节流,将静态存储结构转化为方法区的运行时数据结构,并生成此类的Class对象。

  • 验证:验证文件格式、元数据、字节码、符号引用,确保Class的字节流中包含的信息符合当前虚拟机的要求。

  • 准备:为类变量分配内存并设置其初始值,这些变量使用的内存都将在方法区中进行分配。

  • 解析:将常量池内的符号引用替换为直接引用,包括类或接口的解析、字段解析、类方法解析、接口方法解析。

  • 初始化:执行类中定义的Java程序代码(字节码)。

    类的生命周期(7个):加载、验证、准备、解析、初始化、使用、卸载

Java类加载器及如何加载类

  类加载器是实现通过一个类的全限定名来获取描述此类的二进制文件流的代码模块。类的加载是通过双亲委派模型来完成的,双亲委派模型即为下图所示的类加载器之间的层次关系
  双亲委派模型的工作过程是:如果一个类加载器接收到类加载的请求,它会先把这个请求委派给父加载器去完成,只有当父加载器反馈自己无法完成加载请求时,子加载器才会尝试自己去加载。可以得知,所有的加载请求最终都会传送到启动类加载器中

双亲委派模型

使用双亲委派模型组织类加载器之间的关系有一个显而易见的好处:Java类随着它的类加载器一起具备了某种带优先级的层次关系。如果没有使用双亲委派模型,而是由各类加载器自行加载,假如用户自己编写一个Object类放在ClassPath中,那么系统将会出现多个不同的Object类,Java体系中最基础的行为也就无法保证,应用程

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号