JVM
java虚拟机
eddieVim
Undefined
展开
-
JVM常用调优参数合集
GC常用参数-Xmn -Xms -Xmx -Xss年轻代 最小堆 最大堆 栈空间-XX:+UseTLAB使用TLAB,默认打开-XX:+PrintTLAB打印TLAB的使用情况-XX:TLABSize设置TLAB大小-XX:+DisableExplictGCSystem.gc()不管用 ,FGC-XX:+PrintGC-XX:+PrintGCDetails-XX:+PrintHeapAtGC-XX:+PrintGCTimeStamps-X原创 2020-08-06 22:24:13 · 374 阅读 · 0 评论 -
Java多线程、Java虚拟机(JVM)博客合集
因为Java多线程与JVM关系紧密,故将两个部分的内容整理在一起Java多线程java多线程创建方式及线程的生命周期与线程方法Java并发工具包JUCCAS(Compare And Swap)流程及原理java引用类型及ThreadLocal内存泄漏Java并发编程之对象内存布局与锁揭示volatile关键字背后的奥秘——CPU多级缓存与指令重排Java虚拟机(JVM)JVM-类装载子系统java引用类型及ThreadLocal内存泄漏Java并发编程之对象内存布局.原创 2020-08-06 21:29:30 · 261 阅读 · 0 评论 -
三色标记法与垃圾回收器(CMS、G1)
三色标记法是一种垃圾回收法,它可以让JVM不发生或仅短时间发生STW(Stop The World),从而达到清除JVM内存垃圾的目的。三色标记法-算法思想三色标记法将对象的颜色分为了黑、灰、白,三种颜色。黑色:该对象已经被标记过了,且该对象下的属性也全部都被标记过了。(程序所需要的对象)灰色:该对象已经被标记过了,但该对象下的属性没有全被标记完。(GC需要从此对象中去寻找垃圾)白色:该对象没有被标记过。(对象垃圾)算法流程:从我们main方法的根对象(JVM中称为GC Root)开.原创 2020-08-02 00:58:36 · 1075 阅读 · 0 评论 -
Java并发编程之对象内存布局与锁升级过程
对象内存布局-JOL(Java Object Layout)package pro.eddie.demo;import org.openjdk.jol.info.ClassLayout;public class JavaObjLayout { public static void main(String[] args) { Demo demo = new Demo(); System.out.println(ClassLayout.parseInstance原创 2020-07-04 16:51:32 · 183 阅读 · 0 评论 -
java引用类型及ThreadLocal内存泄漏
强引用new出来的对象都为强引用对象。只要强引用的关系仍然存在,对象内存不会被gc回收。软引用通过SoftReference引用的对象。只要JVM内存空间不足后,软引用就会被gc回收。实际使用场景:缓存弱引用通过WeakReference引用的对象。只要gc一进行,就会被回收。实际应用场景:防止Map的内存泄漏,ThreadLocal防止内存泄漏虚引用通过PhantomReference引用的对象。一般用于管理直接内存。是无法取到value的,而且必须与引用队列一起使用,当虚引用对象即将被原创 2020-05-18 14:44:05 · 185 阅读 · 0 评论 -
JVM-类装载子系统
类装载流程Loading通过全限定类名产生对应二进制流分析转化为方法区(永久代jdk1.7 元空间jdk1.8)的特定的数据结构创建对应class实例Linkingverify:验证字节码的正确性prepare:准备阶段,初始化所有的类变量(static修饰),值为变量初始值。final修饰的除外。(final修饰的为常量,已经在类编译为字节码的时候已经确定)resolve:将常量池中的符号引用转化为直接引用Initialization运行Clinit方法:整合了所有类变量的赋值原创 2020-05-14 22:22:16 · 182 阅读 · 0 评论