• 《深入理解java虚拟机》


      上一章讲到了类的加载机制,主要有传统派的 双亲委派模型 和 现代主义激进派的 osgi 类加载器。接下来继续。

    第8章  虚拟机字节码执行引擎

      局部变量表,用于存储方法参数和方法内部定义的局部变量。

      操作数栈,其实书上解释的糊里糊涂的,个人理解一下,主要是因为cpu寄存器太少,而又要进行各种子方法的调用,那么为了保存外部的一些寄存器值,所以使用了操作数栈。进入子方法的时候,先入栈保存起来,退出时再一个个弹出栈回原来的寄存器。

      动态连接,在每一次运行期间转化为直接引用的操作。

      基于栈的字节码解释执行。

      java中提供了5个方法调用字节码指令,invokestatic 调用静态方法。invokespecial 调用实例构造器<init>方法、私有方法和父类方法 ,invokevirtual 调用所有的虚方法,invokeinterface 调用接口方法,在运行时再确定一个实现此接口的对象,这给我们面向接口编程提供了能力。invokedynamic 先在运行时动态解析出调用点限定符所引用的方法,再执行该方法。javap -c  a 可查看字节码。

      虚拟机动态分派的实现为,在类的方法区中建立一个虚方法表vtable,使用虚方法表索引来代替元数据查找从而提高性能。

      tomcat 类加载器

        osgi 类加载器

      字节码生成技术和动态代理的实现。

      可以使用 retrotranslator 将高版本里写的代码,编译回低版本的运行环境中,原理就是写一些高版本里自代的方法替换到低版本中。

    第10章  编译期优化

      javac 源码与调试,javac编译器是用java语言实现的,可以直接阅读其源码。

      java 语法糖,语法糖就是,表面看起来牛b,实际并没什么卵用的东西。其实主要是为了提高开发效率,以及减少犯错的机会的辅助性语法。如 泛型、自动拆装箱。。。

    第11章  运行期优化

      运行期的热点代码,将会被编译成平台相关的机器码,从而提高性能。

      热点代码分,被多次调用的方法、被多次执行的循环体。

      方法计数器触发即时编译;

      回边计数器触发即时编译

      client compiler 架构

      使用 +XX printcompilation可以将编译的方法打印出来。printinlining。-XX : +printcompilation 。

     第12章  java内存模型与线程

      处理器、高速缓存、主内存间的交互关系

      处理器可能会对输入代码进行乱序执行优化。而java虚拟机的即时编译也可能进行指令重排序优化。

      java主内存与工作内存的交互关系

      java主内存与工作内存的交互协议,定义了8个操作,每一个都是原子性的。

      lock 锁定

      unlock 解锁

      read 读取,和load 连贯操作

      load 载入

      use 使用

      assign 赋值

      store 存储,和write 连贯操作

      线程的实现,使用内核线程实现,使用用户线程实现,混合实现

      

      使用内核线程

      使用用户线程

      混合实现

      java线程有10优先级, Thread.MIN_PRIORITY, Thread.MAX_PRIORITY,针对windows的7个优先级,做重叠处理。

      java线程状态转换

    第13章  线程安全与锁优化

      不可变的对象一定是线程安全的。

      synchronized ,reentrantlock,threadlocalmap。

      锁优化,适应性自旋锁 adaptive spinning,锁消除 lock elimination,锁粗化 lock coarsening,轻量级锁  lightweight locking,偏向锁 biased locking。

      额。。。

  • 相关阅读:
    bzoj 2969: 矩形粉刷 概率期望+快速幂
    loj #6191. 「美团 CodeM 复赛」配对游戏 期望dp
    CF446C DZY Loves Fibonacci Numbers 线段树 + 数学
    CF696B Puzzles 概率期望
    bzoj 3566: [SHOI2014]概率充电器 数学期望+换根dp
    loj #6342. 跳一跳 期望dp
    CF316G3 Good Substrings 广义后缀自动机
    bzoj 3829: [Poi2014]FarmCraft 树形dp+贪心
    bzoj 2131: 免费的馅饼
    CF19D Points 平衡树
  • 原文地址:https://www.cnblogs.com/yougewe/p/7997390.html
Copyright © 2020-2023  润新知