• java类加载机制


    1. 类加载机制:

    类被加载到虚拟机内存包括加载、连接、初始化几个阶段,其中链接又被细化为验证、准备、解析。

    这里需要注意的是,解析阶段在某些情况下可以在初始化阶段之后再开始,这是为了支持Java的运行时绑定。各个阶段的作用整理如下: 

    1.1 加载阶段:

    加载阶段可以使用系统提供的加载器(ClassLoader),也可以用自定义加载器完成,开发人员可以通过定义类的加载器去控制字节流的获取方式。

    (1)通过全类名产生对应类的二进制数据流。

    (2)将二进制数据流转换为方法区的数据结构。

    (3)创建类对应的java.lang.Class对象,作为方法区数据结构的访问入口。

    1.2 链接阶段(实现java动态性):

    (1)验证 保证class文件字节流的正确性。

    (2)准备 为方法区的静态变量分配内存空间,并赋初值。

    (3)解析 把符号引用解析为直接引用

      符号引用是一个字符串,它唯一标识一个类、一个字段、一个方法等。

      直接引用对于类变量、类方法指的是指向方法区的指针,然后对于实例方法、实例对象来说就是偏移量,比如一个实例方法,子类中方法表中的偏移量和父类是一致的,这个偏移量可以确定某个方法的位置。

    1.3 初始化阶段:

  • 相关阅读:
    nginx last break等
    Jmeter
    nginx location规则
    解决性能瓶颈的一些思路
    spring 一些总结
    idea快捷键
    可读的jvm gc日志时间
    redis 搭建集群
    windows下使用Python来修改文件时间戳
    Python获得文件时间戳
  • 原文地址:https://www.cnblogs.com/gengsc/p/7090519.html
Copyright © 2020-2023  润新知