深入JVM内核

/ 1评 / 0

Jvm是java virtual machine的简称,意为java虚拟机

整数的表达:

Float的表示和定义

         S eeeeeeee mmmmmmmmmmmmmmmmmmmmmmm

                  指数8                     尾数:23

         E全0 尾数附加为0 否则尾数附加位位1

         S*m*2^(e-127)

         E:                                -5

         110000001010000000000000000000000000

         -1*2^(129-127)*(2^0+2^-2)

Jvm没有寄存器

通过出栈入栈进行操作

Java类加载器:

Jvm启动流程:

Java xxx à装载配置à根据配置寻找JVM.dllà初始化JVM获得JNIEnv接口à找到main方法并运行

PC寄存器:

方法区:

Java堆:

Java栈:

操作数栈:

         Java没有寄存器,所有参数传递使用操作数栈  

栈上分配:

内存模式:

对于普通变量,一个线程中更新的值,不能马上反应在其他变量中

如果需要在其他线程中立即可见,需要使用volatile关键字

Volatile一般认为比锁的性能好,不能代替锁

线程与本地内存直接的关系:

可见性:

保证可见性的方法:

有序性:

指令重排:

指令重排的基本原则:

解释运行:

编译运行:

Trace跟踪参数:

Oom意味内存溢出

堆的参数分配:

永久区分配参数:

栈大小的分配:

GC的概念:

引用计数法:

引用计数法的问题:

标记清除法:

标记-压缩:

复制算法:

复制算法的最大问题是:空间浪费整合标记清理思想

                  Java新生代使用

分代思想:

可触及性:

类装载器 :

JDK中ClassLoader默认设计模式-分类

性能监控工具

JAVA堆分析:

操作系统可分配
堆空间 线程栈空间 直接内存

偏向锁,轻量级锁,自旋锁

Class文件结构

一条回应:“深入JVM内核”

  1. worthy说道:

    你跟我说这些没有用 因为我只是一只小猫咪

发表评论

电子邮件地址不会被公开。 必填项已用*标注