![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
whp404
这个作者很懒,什么都没留下…
展开
-
GC策略的随笔
GCyoung区分为eden 和 survivor区,所有新创建的对象都在eden区,当eden区满了之后就会触发minor GC,将 Eden区 和 一个survivor区仍然存活的对象存储到 空的survivor区中Old区存储的是 young区的survivor满后 触发 minor GC后仍然存活的对象,当Eden区满后会将这些对象存放到S区,S区存储不下来,GC收集器会直接将这些对象放入到Old区。当old区也快要满的时候,将会触发Full GCperm区存放的是class对象,Perm区原创 2020-08-04 00:18:15 · 115 阅读 · 0 评论 -
JVM故障诊断和性能优化 读书笔记(2)
垃圾收集器和内存分配串行收集器新生代串行回收器是串行独占的回收器,需要STW使用复制算法,实现简单,逻辑简单没有线程切换开销-xx:+UseSerialGC 新生代和老年代都是用串行老年代串行回收器使用标记清除法,是串行独占的回收器,需要STW可以和多种新生代回收器配合使用-xx:+UseSerialGC 新生代和老年代都是用串行-xx:+UseParNe...原创 2020-02-17 22:45:08 · 121 阅读 · 0 评论 -
JVM故障诊断和性能优化 读书笔记(1)
第二章类加载系统负责从文件系统加载class信息,加载类信息存储在方法区中,方法区中还会存放运行时常量池信息,包括字符串字面量和数字常量(这部分常量信息是class文件中常量池部分的内存映射)栈帧从java栈中被弹出有两种情况正常返回,return返回抛出异常栈帧中至少包含局部变量表,操作数栈和帧数据区几部分 被局部变量表直接或间接引用的对象不会被垃圾回收帧数据区...原创 2020-02-08 01:24:40 · 165 阅读 · 0 评论 -
JVM小总结
JVM内存分配参数堆的参数分配Xmx/Xms 分配堆的最大最小值,为避免系统在运行初期,频繁的minor GC/full gc,两个值最好设为一致Xmn 设置新生代的内存大小值老年代 大小 = 堆大小 - 新生代方法区参数分配设置持久代(也叫方法区),持久代不属于堆的范围,包括类的类型信息,常量池,域信息、方法信息。类型信息:类的名称,父类的名称,类型修饰符,类实现的...原创 2018-10-09 17:15:20 · 99 阅读 · 0 评论 -
JVM知识整理(1)
最近复习一下虚拟机的知识:参考了JVM中的直接引用和符号引用 和 Java 类加载机制(阿里面试题),以及 JVM理解其实并不难!JVM/JRE/JDK的区别JVM:就是 JAVA 虚拟机, 它只识别 .class 类型文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作JRE:英文名称( Java Runtime Environment ),...原创 2019-03-23 12:01:17 · 190 阅读 · 0 评论 -
JVM知识整理(2)
参考 CMS为什么采用标记-清除算法JVM 中垃圾收集器有哪些新生代垃圾收集器Serial 收集器:Serial 收集器只能使用一条线程进行垃圾收集工作,并且在进行垃圾收集的时候,所有的工作线程都需要停止工作ParNew 收集器: ParNew 垃圾收集器是Serial收集器的多线程版本。为了利用 CPU 多核多线程的优势,ParNew 收集器可以运行多个收集线程来进行垃圾收集工作。...原创 2019-03-23 12:02:07 · 95 阅读 · 0 评论 -
JVM知识整理(3)
几种OOM异常?堆溢出:java.lang.OutOfMemoryError: Java heap space堆中new的对象太多了,申请不到空间时会抛出 OutOfMemoryError栈溢出:java.lang.StackOverflowError方法创建了一个很大的对象,如 List,Array。是否产生了循环调用、死循环。是否引用了较大的全局变量。永久代溢出:java...原创 2019-03-23 14:37:18 · 110 阅读 · 0 评论 -
Java 初始化知识总结
在jvm知识总结的时候,看了不少博客,发现自己学习的还不扎实,所以学习一下别人的博客,记录下参考 Java 类加载机制(阿里面试题)-何时初始化类类加载机制类从被加载到虚拟机内存开始,到卸载出内存为止,整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段其中加载、验证、准备、初始化、和卸载这5个阶段的顺序是确定的。而解析阶段不一定:它在某些情况下可以在初始化阶段之后再...转载 2019-03-23 16:30:56 · 153 阅读 · 0 评论