
JVM性能调优
文章平均质量分 88
柿饼zzzz
这个作者很懒,什么都没留下…
展开
-
05、java GC基础知识(一)
GCCollector三色标记一、基础知识1.1、java垃圾是什么?1.2、怎样找到垃圾?1.3、垃圾回收的算法1.3.1、标记清除法1.3.2、标记压缩1.3.3、拷贝二、JVM内存分代模型2.1、堆内存逻辑分区2.2、一个对象的从出生到消亡。2.3、GC的分类2.4、对象什么时候进入老年代三、常见的垃圾回收器 一、基础知识 1.1、java垃圾是什么? 没有引用指向的所有对象都是垃圾 1.2、怎样找到垃圾? 引用计数法和可达性分析法。 引用计数法: 当指向该对象的引用数为0时,该对象成为垃圾。但是无原创 2021-03-25 10:36:16 · 280 阅读 · 0 评论 -
03、关于对象的知识点
1、java对象的创建过程 2、对象在内存中的存储布局 3、对象头具体包括哪些类容 4、对象怎么定位 5、对象怎么分配 6、Object o = new Object() 一、java对象的创建过程 分为类的初始化和类的实例化阶段: 类的初始化: 类的初始化阶段会触发静态变量的初始化和静态代码块的执行 class loading class linking(verification,preparation,resolution) class initializing 类的实例化: 申请对象内存 成原创 2021-03-23 10:49:44 · 133 阅读 · 0 评论 -
04、JVM运行时数据区
JVM运行时数据区运行时五大数据区一、JVM虚拟机栈(Java Virtual Machine Stacks)1.1、栈帧1.1.1局部变量表1.1.2操作数栈1.1.3动态链接:符号引用转化为直接引用1.1.4返回地址二、本地方法栈(Native Method Stacks)三、程序计数器(The pc Register)3.1、程序计数器是线程私有的3.2、JVM 规范中唯一没有规定 OutOfMemoryError 情况的区域3.3、执行 Native 方法时计数器值为空3.4、Native 方法的实转载 2021-03-23 15:25:46 · 443 阅读 · 0 评论 -
02、java内存模型(JMM)
一、java内存模型的定义 JMM规定了所有的变量都存储在主内存(Main Memory)中。每个线程还有自己的工作内存(Working Memory),线程的工作内存中保存了该线程使用到的变量的主内存的副本拷贝,线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,而不能直接读写主内存中的变量(volatile变量仍然有工作内存的拷贝,但是由于它特殊的操作顺序性规定,所以看起来如同直接在主内存中读写访问一般)。不同的线程之间也无法直接访问对方工作内存中的变量,线程之间值的传递都需要通过主内存来完成。转载 2021-03-16 20:21:11 · 147 阅读 · 0 评论 -
01、类的加载过程(双亲委派)
一、类的完整加载过程 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)。另外注意这里的几个阶段是按顺序开始,而不是按顺序进行或完成,因为这些阶段通常都是互相交叉地混合进行的,通常在一个阶段执行的过程中调用或激活另一个阶段。 1. Loading 加载 加载是类加载过程的第一个阶段,在加载阶段,虚拟机需转载 2021-03-15 19:48:03 · 189 阅读 · 0 评论