• 虚拟机加载机制读后感


    周末花了两个小时左右阅读了一下,深入理解Java虚拟机第七章有关虚拟机加载的相关知识,主要要点记录如下。

    1,java虚拟机加载的过程(狭义的理解就是虚拟机将class文件加载到内存的方法区的过程)主要经历:

      加载=》验证=》准备=》解析=》初始化=》使用=》卸载

    2,其中初始化过程与我们平时写的应用关系最大。虚拟机规定了有且仅有一下五中条件,才会对类进行初始化。

          a, new对象以及对类的静态变脸进行读写

          b, 初始化子类之前需要初始化父类

          c, 程序启动时main函数所在的类

          d, 使用反射使用类的时候

          e,java.lang.invoke.MethodHandle实例解析的结果是REF_static。。。(不太理解)

    3,同一个class文件被不同的类加载器加载后instanceof,equals的结果都不等。

    4,委派双亲模型,在使用加载器的时候优先使用父类加载器,如果父类加载器没法加载,才使用自己的加载器。

    5,应用程序类加载器(程序的默认加载器)和线程上下文类加载器两中类型加载器。其中线程上下文类加载器可以通过setContextClassLoader进行设置,如果当前线程没有设置则继承父类的,如果都没有就使用应用程序类加载器。

  • 相关阅读:
    Shell——2
    Vim-快捷命令
    Shell——1
    linux命令笔记
    小飞机 + zeal 安装
    linux 环境下 假设被cc攻击,请从linux日志文件找出黑客ip地址
    日志文件例子
    最大子列和的四种方法,时间复杂度递减,直至为线性复杂度
    递归很耗内存+多项式求值的两种方法+c语言计时方法
    线代 第六章 二次型
  • 原文地址:https://www.cnblogs.com/superhedantou/p/5724329.html
Copyright © 2020-2023  润新知