![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 66
One玛玛小王子
这个作者很懒,什么都没留下…
展开
-
java.lang.OutOfMemoryError: GC overhead limit exceeded一个配置解决
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration>原创 2021-06-01 11:50:00 · 143 阅读 · 0 评论 -
JVM——内存模型
内存模型1.java内存模型1.1 原子性1.2实例2.可见性2.1退不出的循环2.2解决方法2.3 可见性3.有序性3.11.java内存模型java内存模型是Java Memory Model的意思。简单的说,JMM定义了一套在多线程读写共享数据(成员变量、数组)时,对数据的可见性、有序性和原子性的规则和保障。1.1 原子性Java 内存模型保证了 read、load、use、assign、store、write、lock 和 unlock 操作具有原子性,例如对一个 int 类型的变量执行 a原创 2021-05-31 15:35:47 · 162 阅读 · 0 评论 -
JVM垃圾回收
垃圾回收1.如何判断对象可以回收1.1引用计数法1.2可达性分析算法1.3四种引用2.垃圾回收算法2.1标记清除2.2标记整理2.3复制3.分代垃圾回收3.1相关VM参数4.垃圾回收器4.1串行4.2吞吐量优先4.3响应时间优先4.4G11.如何判断对象可以回收1.1引用计数法A对象引用B对象,B对象现在的引用计数是1;B对象引用A对象,A对象的应用计数也是1;A、B对象的应用技术不能归零,导致这两个对象不能作为垃圾进行回收,因此造成内存上的泄露。1.2可达性分析算法Java虚拟机中的垃圾回收原创 2021-05-27 18:12:20 · 87 阅读 · 0 评论 -
JVM内存结构
内存结构1.程序寄数器1.1定义1.2作用1.3特点2.虚拟机栈2.1定义2.2栈内存溢出2.3线程运行诊断3.本地方法栈4.本地方法栈4.1定义4.2堆内存溢出4.3堆内存诊断5.方法区5.1定义5.2组成5.3方法区内存溢出5.4运行时常量池5.5StringTable特性5.6StringTable位置1.程序寄数器1.1定义Program Counter Register程序计数器(寄存器)1.2作用作用,是记住吓一跳jvm指令的执行地址。1.3特点是线程私有的不会存在内存溢出原创 2021-05-26 11:20:06 · 129 阅读 · 0 评论 -
JVM的生命周期
JVM的生命周期Java虚拟机的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(inittial class)来完成的,这个类是有虚拟机的的具体实现指定的。虚拟机的执行(1)一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。(2)程序开始执行时他才运行,程序结束时他就停止。(3)执行一个所谓的Java程序的时候,真真正正在执行 的是一个叫做Java虚拟机的进程。虚拟机的退出有如下的集中情况:(1)程序正常执行结束(2)程序在执行过原创 2021-05-25 12:01:59 · 86 阅读 · 0 评论