简述JVM基础(五):虚拟机类加载机制

时间:2021-07-16 | 标签: | 作者:Q8 | 来源:网络

小提示:您能找到这篇{简述JVM基础(五):虚拟机类加载机制}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的简述JVM基础(五):虚拟机类加载机制内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

   

        我们一定心里有个疑问,专业微商推广我们那个多态是怎么回事?我们指定的一个接口,却可以等到运行时可以对应于不同的实现类。所以,我们通过编译器将我们写的Java文件代码编译成Class文件,程序跑起来的时候通过加载器。
  加载过程
        1、 加载(loading)
  2、 连接
  (1)、 验证
  (2)、准备:为类变量分配内存并设置初始值(如in精准营销的模式t为0)。
  (3)、解析:
  3、初始化
  4、 使用
  5、 卸载
  类加载器
  1、唯一性
  对于任何一个类,都需要和这个类的加载器与这个类共同确定在Java虚拟机中的唯一性,这里说的唯一性指的是"相等",也就是我们平时说的Class对象的equals()、isAssiganableFrom()、isInstance()方法的返回结果;
  2、双亲委派模型
  当一个类的加载器收到了加载请求,不会自己先动手,而是委派给这个类的父类进行加载,如果找不到加载不了就反馈回来自己加载。这样的话,让Java的类一出生就有了很好的层次父子关系。当然也有一些手段去破坏这种关系而获得某种效果。
  双亲委派模型可以被破坏,推荐重写findClass()方法,而不是loadClass(),应用于热部署等技术;
我们通过编译器先将我们写的.java代码编译为可执行的.class文件,那么如果我们需要真正的执行这个代码,还需要一个过程。这个时候加载器的角色就来了,加载器将首先要加载可引流 怎么意思执行文件,并变换数据结构。在初始化之前,我们还需要进行验证和准备。解析的过程可以在初始化之前,也可以在初始化之后(实现动态加载的时候-)。触发初始化的条件有几种,分为被动引用和主动引用两大类。我们可以理解为主动引用是我们主动的触发了本Class的初始化,比如New 这个对象的实例。 
但是,也存在我们在本类中引用到了其他的类,比如说父类,其他类的常量。如果,我们的操作不是上述的主动引用,其结果是没有触发本Class的初始化,而是间接的触发了别的Class进行初始化工作。我们称这个为被动引用。对于任何一个类,我们通过类和这个类的加载器共同确定在JVM中的唯一性,为了保证父类和子类的层次关系。我们在有需求触发子类的初始化时,必须先完成父类的初始化工作,一直向上追溯,从上到下依次完成初始化。这就是所谓的双亲委派模型。
双亲委派模型也是可以被破坏的,在热部署技术中有应用。
 
简述JVM基础(五):虚拟机类加载机制

上一篇:32位量子虚拟机成功上线 量子“门外汉”可更快
下一篇:深入理解Java虚拟机 - Java内存区域


版权声明:以上主题为“简述JVM基础(五):虚拟机类加载机制"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
扫码咨询
    简述JVM基础(五):虚拟机类加载机制
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“简述JVM基础(五):虚拟机类加载机制”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通简述JVM基础(五):虚拟机类加载机制的相关事宜。

关键词:简述JVM基础(五):虚拟机类

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:545321@QQ.com
电话:400-021-1330 | 客服QQ:545321
沪ICP备12034177号 | 沪公网安备31010702002418号