![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入理解Java虚拟机
钢铁-程序猿
这个作者很懒,什么都没留下…
展开
-
cyc的Java内存模型
文章目录1、对象的访问定位的两种方式?(句柄和直接指针)2、谈谈对内存泄漏(无法释放,如static)的理解?举几个内存泄漏的案例?3、被GC判断为“垃圾”的对象一定会被回收吗?4、用的垃圾收集算法有哪些?各自的优缺点是什么?5、为什么要采用分代收集算法?6、对象如何进入老年代7、谈谈对Java引用的理解(4种)?8、什么是浮动垃圾?9、常用的垃圾收集器有哪些?10、CMS(低停顿)11、G1(分...原创 2020-04-12 15:33:50 · 188 阅读 · 0 评论 -
JVM部分参数解释
你说你做过JVM调优和参数设置,请问如何盘点查看JVM系统默认值?1、标配参数-version-helpjava -showversion2、X参数(了解)-Xint:解释执行-Xcomp:第一次使用就编译成本地代码-Xminxed:混合模式默认混合模式相当于先javac 再java3、XX参数Boolean类型 公式: -XX:+或-某个属性值...原创 2020-04-18 21:38:38 · 124 阅读 · 0 评论 -
JVM性能调优(一般)
JVM性能调优链接1、发现问题监控CPU监控内存发现发生FULL GC(可能存在大对象,案例:用一个对象统计老师发表的论文,如果一个老师发表很多,可能造成这个对象很大,大对象直接进入老年代,如果堆内存很大,FULL GC时间就很长。)如何解决部署多个web容器,减少单个web容器的堆内存。2、发现问题场景:简单抓取系统,抓取网站上的一些数据,分发到其他的应用。环境:Wind...原创 2020-04-13 13:28:19 · 111 阅读 · 0 评论 -
JVM调优
文章目录JVM调优1、jps命令格式2、jstat命令格式3、jinfo4、jstack(可检测死锁)5、javap语法6、jconsole(图形界面)jinfo对应VM概要判断死缓选7、java Visual VMJVM调优1、jpsjps(Java Virtual Machine Process Status Tool) Java虚拟机进程状态工具显示当前所有的Java进程pid的命令...原创 2020-04-13 14:55:45 · 88 阅读 · 0 评论 -
happen-before讲解
happen-beforeJMM可以通过happens-before关系向程序员提供跨线程的内存可见性保证(如果A线程的写操作a与B线程的读操作b之间存在happens-before关系,尽管a操作和b操作在不同的线程中执行,但JMM向程序员保证a操作将对b操作可见)。具体的定义为:1)如果一个操作happens-before另一个操作,那么第一个操作的执行结果将对第二个操作可见,而且第...原创 2020-04-13 15:01:58 · 291 阅读 · 0 评论 -
深入理解Java虚拟机-第七章、虚拟机类加载机制
文章目录第七章、虚拟机类加载机制一、类加载的时机对类初始化的5个时机(有且只有这五个)被动引用的例子通过子类引用父类的静态变量,不会导致子类初始化通过数组定义来引用类,不会触发此类的初始化调用类的常量不会被初始化(static final)二、类加载的过程1、加载2、验证阶段验证步骤1、文件格式验证验证步骤2、元数据验证验证步骤3、字节码验证验证步骤4、符号引用验证3、准备阶段4、解析阶段5、 初...原创 2020-04-13 10:05:36 · 212 阅读 · 0 评论 -
深入理解Java虚拟机-第四章、虚拟机性能监控和故障处理工具
文章目录第四章、虚拟机性能监控和故障处理工具一、JDK的命令行工具1、jsp:显示所有虚拟机进程2、jstat:虚拟机统计信息监视工具3、jinfo:Java配置工具4、jmap:Java内存映射工具jstack:Java 线程堆栈跟踪工具二、JDK可视化工具JConsole:Java 监视与管理控制台2、VisualVM:多合一故障处理工具第四章、虚拟机性能监控和故障处理工具使用适当的虚拟机...原创 2020-04-13 10:05:23 · 147 阅读 · 0 评论 -
深入理解Java虚拟机-第三章、垃圾收集器与内存分配策略
文章目录垃圾收集器与内存分配策略一、如何判断对象已经死了?1、引用计数器存在的问题:对象之间相互循环引用2、可达性分析算法GC Roots对象包含下面几种:3、引用分类强引用(不会被回收,如Object obj=new Object())软引用(用来描述一些还有用但并非必需的对象)弱引用虚引用4、不可达对象如何自救?5、方法区的回收三、垃圾回收算法1、标记清除算法标记清除算法的不足2、复制算法为什...原创 2020-04-13 10:05:09 · 182 阅读 · 0 评论 -
深入理解Java虚拟机-第二章、Java内存区域与内存溢出异常
参考链接文章目录第二章、Java内存区域与内存溢出异常一、第一章一些知识点1、为什么java可以一次编写,到处运行?2、什么是JDK、JREJDKJRE二、运行时数据区域1、程序计数器(线程私有,可以看成当前线程的行号指示器)2、虚拟机栈(线程私有)局部变量表3、本地方法栈(线程私有)4、Java堆(线程共享)5、方法区(线程共享)二、HotSpot对象探秘1、对象的创建存在的问题:内存分配不安...原创 2020-04-13 10:04:49 · 160 阅读 · 0 评论 -
深入理解Java虚拟机(可以不看)
文章目录第二章、Java内存区域与内存溢出异常一、概述二、运行时数据区域1、程序计数器2、Java虚拟机栈3、本地方法栈4、Java堆5、方法区6、运行时常量池7、直接内存三、HotSpot虚拟机对象探秘1、对象的创建第二章、Java内存区域与内存溢出异常一、概述在Java中,由虚拟机管理内存,也是因为Java程序员把内存的控制权交给了虚拟机,一旦出现内存泄露和溢出方面的问题,如何不了解虚拟...原创 2020-04-13 15:22:07 · 646 阅读 · 0 评论