![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 61
无心拾贝
这个作者很懒,什么都没留下…
展开
-
JVM (一) 初步认识
JVM (一) 初步认识一、基础知识1. Java吹的最精确的牛逼Write Once,Run Anywhere。全靠不同OS上的不同的JVM实现,JVM对应处理的是 .class 文件即jar包。2. JDK,JRE,JVM结构关系3.Hello.java程序的流程二、初次体验 [软件版本idea 3.5 JDK 1.8]1. 写一个Demo程序,体验dump内存快照和用就co...原创 2018-09-25 11:52:41 · 225 阅读 · 0 评论 -
JVM(三) 堆内存的划分
一、学习JVM的目的一般是出现内存异常的时候快速定位问题和性能优化,那么内存是如何分配的就必须的作为基础知识。在上一篇《运行时数据区》中描述的了解到其实线程独占的三部分gc基本不动,在线程共享的两部分方法区gc也是基本动不了。那gc基本唯一会经常操作的就是堆内存。堆内存的大致划分:JDK 1.8和以前JDK 1.8以后 不在用永久带,而是Meta Space已经不在堆内存中。1.1 新生...原创 2018-09-25 16:47:31 · 4029 阅读 · 2 评论 -
JVM(二) 运行时数据区
一、运行时数据区的大致划分运行时数据区按照线程共享和独享来划分1.1 线程共享的(所有线程都共有的):方法区,Java堆1.2 线程独占区(JVM会给每一个线程划分一块,如图):程序计数器,虚拟机栈,本地方法栈。1.1 线程共享区1.1.1 堆:存放对象实例(垃圾回收器管理的最主要的区域)1.1.2 方法区...原创 2018-09-25 15:17:25 · 154 阅读 · 0 评论 -
JVM(四) 垃圾回收的算法
一、哪些对象需要被回收(对象已死?先判断)1.1 引用计数器(Java垃圾回收器从来没用过)2.2 可达性分析算法如果能被 GC Root找到的就是可达的。那哪些能被看成GC Root?a, 虚拟机栈中本地变量表引用的对象b, 方法区中 类静态变量引用的对象 & 常量引用的对象c, 本法方法栈中JNI引用的对象其实 GC Root 不可达的 像比如图中D对象,还是会再挽救一...原创 2018-09-25 17:15:35 · 93 阅读 · 0 评论 -
JVM(五) 常见的垃圾回收器
一、常见的垃圾回收器1, Serial 单线程,新生代,复制2, ParNew 多线程(减少了垃圾回收的时间 复制)-XX:MaxGCPauserMillis 设置最大垃圾收集停顿时间-XX:ParallelGCThreads:设置用于垃圾回收的线程数 GC线程数3, Parallel Scavenge (复制)跟2差不多,但关注点不一样。它关注的是吞吐量吞吐量= 运行用户代码时间...原创 2018-09-25 17:50:17 · 185 阅读 · 0 评论 -
动态代理
原创 2018-10-18 12:05:51 · 85 阅读 · 0 评论