zoukankan      html  css  js  c++  java
  • 笔记:深入理解JVM 第三部分 虚拟机执行子系统 (第6、7、8、9章)

    一、第6章 类文件结构

    1、Class类文件结构

    结构:二进制流

    魔数:0xCAFEBABE

    1.7.0的版本号:50.0

    内容:常量池、访问标志、类索引、父类索引、接口索引集合、字段表集合、方法表集合、属性表集合、

    2、字节码指令

    分类:加载和存储指令、运算指令、类型转换指令、对象创建和访问指令、操作数栈管理指令、控制转移指令、方法调用和返回指令、异常处理指令、同步指令


    二、第7章 类加载机制

    1、初始化时机

    (1)、new 一个对象,调用静态字段或方法

    (2)、反射

    (3)、初始化子类

    (4)、JVM启动类

    (5)、1.7中的动态语言


    不会初始化时机:

    (1)、使用编译时常量 (final static 变量)

    (2)、使用父类的静态变量或方法,不初始化子类

    (3)、创建一个数组:

    MyClass[]  clazzes = new  MyClass[10] ;

    以上语句不会初始化。

    (4)、初始化类不会初始化其实现的接口


    2、类加载的过程

    加载的例子:

    (1)、从JAR、WAR、ZIP 等包读取

    (3)、从网络中读取

    (4)、动态代理、CGLIB等生成类

    (5)、JSP 生成Class类

    (6)、数据库中读取


    3、类加载器

    双亲委派模型:

    Bootstrap ClassLoader:加载 /lib 下类

    Extension ClassLoader:加载 /lib/ext 下类

    Application ClassLoader:加载 classpath下类


    破坏双亲委派模型:
    (1)、JNDI服务的线程上下文类加载器:通过java.lang.Thread.setContextClassLoader() 设置ClassLoader,绕过双亲委派模型。
    (2)、热部署:OSGi中的类加载器,不在是双亲委派,而是网状结构。


    三、第8章 字节码执行引擎

    1、运行时栈帧结构

    包括:局部变量表、操作数栈、动态连接、方法返回地址、附加信息


    2、方法调用

    包括:解析、分派、、动态语言支持


    3、基于栈的字节码解释执行引擎


    四、第9章 类加载和执行案例

    1、Tomcat的类加载器

    类库目录划分:

    /common :可被Tomcat 和 所有Web应用共同使用

    /server :只能被Tomcat 使用,所有Web应用的不可以使用

    /shared:Tomcat不可以,所有Web应用都可以使用

    /deploy/myApp/Web-INF:Tomcat不可以,myAPP私有,其余web应用不可以



    2、OSGi  (Open Service Gateway Initiative) 灵活的类加载器架构

    类加载器不再是双亲委派模型的树形结构,而是复杂的网状结构

    优点:(1)、更精确的模块划分和可见性控制。

    (2)、模块热插拔,程序升级更新、调试除错,可以只停用程序中的一部分,而非全部。


    缺点:

    (1)、类加载器的网状结构容易造成死锁

    (2)、容易造成内存泄露

    3、字节码生成技术

    动态代理、CGLib、AOP 等

    4、Retrotranslator

    可将新版本的代码回退为老版本。





  • 相关阅读:
    二进制位运算
    Leetcode 373. Find K Pairs with Smallest Sums
    priority_queue的用法
    Leetcode 110. Balanced Binary Tree
    Leetcode 104. Maximum Depth of Binary Tree
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 64. Minimum Path Sum
    Leetcode 63. Unique Paths II
    经典的递归练习
    案例:java中的基本排序
  • 原文地址:https://www.cnblogs.com/leeeee/p/7276180.html
Copyright © 2011-2022 走看看