`

深入理解java虚拟机读书笔记

    博客分类:
  • jvm
 
阅读更多

第1章java体系

java技术史

使用OpenJdk编译自己的虚拟机,呵呵

 

第2章 自动内存管理机制

java运行时内存区域包括

堆:java堆,非堆(方法区(常量池,类反射等信息))

栈:虚拟机栈,本地方法栈

直接内存

计数器:记录代码执行到哪一行

 

第3章 垃圾回收器与内存分配策略(P43-75)

1.垃圾回收器

1)java对象:新生代和老生代

Full gc??

2.内存分配与回收策略

有5种策略

基本是在minGC,FullGC,对象从新生代到surivor,再到老生代,如何分配复制内存

 

第4章 虚拟机性能监控与故障处理工具(P76-105)

简单浏览一遍,工具用到的时候需要查书

 

第5章 调优案例分析与实战(P106-133)

1.高性能硬件上的程序部署策略

2.集群间同步导致的内存溢出

3.对外内存导致的溢出错误

4.外部命令导致系统缓慢

5.服务器JVM进程崩溃

 

第6章 类文件结构(P136-170)

 

第7章 虚拟机类加载机制(P171-197)

7.3类加载的过程

  7.3.1加载

  7.3.2验证

  7.3.1准备

  7.3.1解析

  7.3.1初始化

7.4类加载器

  7.4.3破坏双亲委派模型

    a.JDK1.2前没有双亲委派

    b.SPI的代码,如JNDI,要求子加载器加载基础类,而不是父加载器加载基础类

    c.双亲委派不是万能,要创新,如OSGI,OSGI的加载器是网状的,以后再了解

 

简单了解了一遍,但一些细节需要慢慢记忆

 

第8章 虚拟机字节码执行引擎(P198-230) 

 8.2运行时栈帧结构

    8.2.1局部变量表

    8.2.2操作数栈

            定义不懂?

    8.2.3动态链接

            运行时,一部分符号引用转化为直接引用,这部分过程叫动态链接

    8.3方法调用

    8.3.1解析---编译时已经知道调用类的哪个版本的方法,如static方法

    8.3.2分派

           静态多分派:重载

           动态但分派:重写

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

   8.4.1解析执行

           回想起编译原理,解释执行其实是做了一半的编译,生成中间代码,

           而没有生成物理机器对应目标代码

   8.4.2基于栈的指令集和基于寄存器的指令集

           基于栈的指令集速度较慢:更多的指令与内存的访问

           基于寄存器的指令集:更少的指令与寄存器访问

   8.4.3基于栈的解析器执行过程

           8-5至8-11看图可以理解基于栈的解析器执行过程,心理有个基本的过程模型

           局部变量表存储变量

           栈出栈入栈用于加减乘除等运算

 

第9章 类加载及执行子系统的案例与实战

 

第10章 早期(编译期)优化(P258-286)

10.3 Java语法糖的味道

  10.3.1泛型和类型擦除

  10.3.2自动装箱与拆箱

  10.3.3条件编译

 

第11章 晚期(运行期)优化(P287-313)

11.2Hotspot虚拟机

 11.2.1解析器与编译器

 11.2.2编译对象与触发条件

 11.2.3编译过程

           字节码->高级中间吗->低级中间码->机器代码(二进制代码)

11.3编译优化技术

 11.3.1优化技术概览

 11.3.2公共表达式消除

 11.3.3数组边界检查消除

 11.3.4方法内联

 11.3.5逃逸分析

 

第12章 Java内存模型与线程

P316-322

java内存模型8中操作的原则

volatile的特殊规则

 

P322-333

先行发生原则

 

P333-341

java与线程

线程实现有协同式和抢占式

抢占式中:线程执行时间交给了系统控制,而不是线程自身,所以更公平

 

第13章 线程安全与锁优化(P342-362)

线程安全

锁优化 

自旋锁与自适应自旋

轻量级锁

图13-4轻量锁使用cas,明白50%

偏向锁

图13-5不懂,偏向锁cas都不用,就取消同步语义,但原理不懂

Hotsport虚拟机的对象的内存布局

小结:第13章也只是了解了基本概念,原理未吃透

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics