
Jvm
文章平均质量分 66
eaphy
这个作者很懒,什么都没留下…
展开
-
JVM:Java 类的加载机制
1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。类加载器并不需要等到某个类被“首次主动使用”时再加载它转载 2017-06-11 14:43:42 · 1375 阅读 · 0 评论 -
JVM:Java GC算法 垃圾收集器
概述垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部分内存的分配和使用都是动态的.对转载 2017-06-11 15:05:50 · 308 阅读 · 0 评论 -
JVM:jvm运行时数据区
1、程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。由...原创 2018-07-24 03:03:55 · 265 阅读 · 0 评论 -
JVM 常用参数配置
-Xmx :堆的最大值-Xms :堆的最小值-Xmn :堆年轻代大小 (eden+ 2 survivor space)-XX:PermSize: 设置持久代(perm gen)初始值-XX:MaxPermSize: 设置持久代最大值-XXSurvivorRatio:Eden区和Survior区的占用比例.-XX:NewRatio:年轻代(包括Eden和两个Survivor区)与年老代的...原创 2018-11-09 16:40:06 · 373 阅读 · 0 评论 -
JVM:使用 MAT 工具结合jmap命令分析内存泄漏
1、下载MAT工具2、演示内存溢出新建一个controller@RestControllerpublic class HeapControler { private ArrayList<User> arrayList = new ArrayList<User>(); @GetMapping("/heapmmo&q原创 2018-11-24 15:33:41 · 1765 阅读 · 0 评论 -
JVM: 使用 jstack 命令找出 cpu 飙高的原因
首先新建一个springboot项目,新建一个controller@RestControllerpublic class DeadLockController { private Object lock1 = new Object(); private Object lock2 = new Object(); @GetMapping("/deadlock") ...原创 2018-11-24 17:56:30 · 2620 阅读 · 0 评论