JVM
william_cr7
你只有十分努力,才能配得上你的梦想!
展开
-
JVM内存分配
一、运行时数据区域Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区1.1程序计数器程序计数器是一块较小的内存,他可以看做是当前线程所执行的行号指示器。字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码的指令,分支、循环、跳转、异常处理、线程恢复等基础功...原创 2017-12-24 23:27:18 · 249 阅读 · 0 评论 -
JVM运行数据区总结
1、JVM运行数据区结构方法区:存储常量、静态变量、类信息、JIT,是线程共享的区域。堆:堆内存用于存放由new创建的对象和数组,成员变量等,是垃圾回收的主要区域,也是JVM管理的内存中最大的区域。是所有线程共享的区域。程序计数器:又叫PC寄存器,存储当前线程执行的指令地址,如果当前线程执行的是native方法,则存放的值为undefined,如果执行的是非native方法,则存放...原创 2018-03-04 23:10:10 · 231 阅读 · 0 评论 -
JVM学习之垃圾回收算法
1. 何时回收对象JVM何时回收对象,换句话说,如何判断对象为垃圾对象?有以下两种方式: 引用计数法 在对象中添加一个计数器,当一个对象在其他地方被引用,则计数器加1,失效时计数器减1。但这种并不能解决相互引用问题。 -verbose:gc -XX:+PrintGCDetails 可达性分析 GCRoot通过引用可以指向对象则对象存活,否则对象无效,视为垃圾。 ...原创 2019-07-31 14:50:43 · 229 阅读 · 0 评论 -
JVM学习之垃圾收集器
如果说垃圾回收算法是理论,那么垃圾收集器就是实现。今天来聊聊Hotspot几种垃圾收集器。橙色代表新生代,绿色代表老年代,收集器直接有连线的说明可以配置使用。1. Serial收集器Serial收集器是最基本也是最长久的垃圾收集器。它是一个单线程收集器,它在进行垃圾对象收集时必须停掉用户线程。这样对用户体验来说就很糟糕了,所以JDK一直在努力减少因内存回收而导致停顿用户线程。到JD...原创 2019-08-10 23:07:32 · 200 阅读 · 0 评论 -
JVM学习之内存监控与故障处理工具
1. JDK常用的命令行工具1.1 虚拟机进程状况工具--jps1.2 虚拟机统计信息监视工具--jstat1.3 Java配置信息工具--jinfo1.4 Java内存映像工具--jmap1.5 虚拟机堆转储快照分析工具--jhat1.6 Java堆栈跟踪工具--jstack2. 可视化工具2.1 JConsole...原创 2019-08-11 17:33:35 · 207 阅读 · 0 评论