【JVM】JVM系列
文章平均质量分 93
IT码客
明日复明日,明日何其多,以此博文来约束自己,多学习,多总结。如不巧能帮助他人,实属本人之荣幸。
展开
-
JVM系列大纲
本系列主要分析JVM主要功能要点,初步大纲如下,会根据写作情况进行细化,目的在于梳理JVM的知识体系,具体分析文章会陆续发布。[JVM]类加载机制(1)[JVM]Java内存区域(2)[JVM]Java内存模型(3)[JVM]垃圾收集器(4)[JVM]内存分配策略(5)[JVM]调优工具(6)[JVM]调优GC参数(7)...原创 2018-03-31 23:44:47 · 425 阅读 · 0 评论 -
JVM :关于捕获 Java Heap Dump 的6种方式
Heap Dump是什么?Heap Dump 也被称为 堆转储文件,是一个Java进程在某个时间点上的内存快照。Heap Dump是有着多种类型的。不过总体上heap dump在触发快照的时候都保存了java对象和类的信息。通常在写heap dump文件前会触发一次FullGC,所以heap dump文件中保存的是FullGC后留下的对象信息。堆转储文件是诊断内存相关问题的重要信息来源,例如内...原创 2019-01-20 17:14:44 · 12277 阅读 · 0 评论 -
JVM:GC之垃圾收集器
简述如果说收集算法时内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。这里我们讨论的垃圾收集器是基于JKD1.7之后的Hotspot虚拟机,这个虚拟机包含的所有收集器如图: Serial 收集器Serial 收集器概述Serial收集器是一个单线程收集器,它在进行垃圾收集时,(Stop The World)必须暂停其它所有的工作线程,直到它收集结束。这对很多应用来...原创 2018-05-27 15:24:29 · 259 阅读 · 0 评论 -
JVM:内存分配策略
对象优先在Eden分配大多情况,对象在新生代Eden区分配。当Eden区没有足够空间进行分配时,虚拟机将进行一次Minor GC。虚拟机提供了参数 -XX:+PrintGCDetails ,在虚拟机发生垃圾收集行为时打印内存回收日志。新生代Minor GC 事例定义了4个字节数组对象,3个2MB大小、1个4MB大小,通过-Xms20M -Xmx20M -Xmn10M 三个参数限制了...原创 2018-06-02 17:32:47 · 440 阅读 · 0 评论 -
JVM:GC之垃圾收集算法
1.垃圾收集概念GC目的分配内存,为每个新建的对象分配空间确保还在使用的对象的内存一直还在,不能把有用的空间当垃圾回收了释放不再使用的对象所占用的空间我们把还被引用的对象称为活的,把不再被引用的对象认为是死的,也就是我们说的垃圾。GC 的工作就是找到死的对象,释放(也称为回收)这些对象所使用的空间的过程称为垃圾收集。我们把 GC 管理的内存称为 堆(heap),垃圾收集...原创 2018-05-13 15:58:27 · 277 阅读 · 0 评论 -
JVM:GC之对象生死
1.简述在Java内存运行时区域的各个部分中,程序计数器、虚拟机栈、本地方法栈3个区域随着线程而生,随着线程而亡。栈中的栈帧随着方法的进入和退出而有条不紊的进行着入栈和出栈操作。 每个栈帧需要分配多少内存基本上在类结构确定时就已知了,因此这几个区域的内存分配和回收具有可确定性,在这几个区域就不需要过多的考虑内存的分配和回收问题,因为方法结束或线程结束时,内存自然就释放了。而java堆和方法区...原创 2018-05-12 22:45:45 · 324 阅读 · 0 评论 -
JVM:Java内存模型
简述Java内存模型(Java Memory Model,JMM),是用来屏蔽掉各种硬件和操作系统的内存访问差异,以实现Java程序在各种 平台下都能达到一致的内存访问效果.在JVM内部,Java内存模型把内存分成了两部分:线程栈区和堆区,下图展示了Java内存模型在JVM中的逻辑视图: JVM中运行的每个线程都拥有自己的线程栈,线程栈包含了当前线程执行的方法调用相关信息,我们也把...原创 2018-04-22 15:51:18 · 1211 阅读 · 0 评论 -
JVM:Java内存区域
1.简述对于Java程序员来说,在虚拟机自动内存管理机制下,不需要关心内存的回收问题,但是一旦出现内存泄漏和溢出问题,如果不了解虚拟机是怎么管理内存的,那么问题排查工作将是一项非常艰巨的任务。本文主要从概念层面介绍虚拟机内存的各个区域,以及对象创建时内存如何分配。2.运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的区域。这些区域都有不同的用...原创 2018-04-15 15:16:16 · 254 阅读 · 0 评论 -
JVM:Java类加载机制
什么是类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这既是虚拟机的类加载机制类的生命周期生命周期简述类从被加载到虚拟机内存开始,到卸载为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初...原创 2018-04-01 16:57:16 · 318 阅读 · 0 评论 -
JVM:JDK命令行工具
文章目录常用工具介绍jcmd:综合工具命令格式参数描述应用示例jcmd 或 jcmd -ljcmd [pid] PerfCounter.printjcmd [PID] help查看具体命令的选项jps:虚拟机进程状况工具命令格式参数说明应用示例jpsjps -qjps -mjps -ljps -vjstat:虚拟机统计信息监视工具命令格式参数说明应用示例jstat -class 类加载统计jst...原创 2019-03-02 13:49:38 · 663 阅读 · 0 评论