JVM
文章平均质量分 53
yuan_boss
网络安全领域知识博主
展开
-
7JProfiles分析OOM
JProfiles分析OOM 1.给IDEA安装配置JProfiles 先在IDEA的File-setting–Plugins安装jprofiles,然后重启IDEA,再到官网下载JProfile,安装好后,到IDEA的File–setting–Tools找到Jprofile,找到对应的Jprofile.exe路径,如图: 再到出现OOM的类中设置VM options的参数 -Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError -Xms:设置初始化分配内存的大小,默认原创 2021-07-21 12:02:21 · 229 阅读 · 2 评论 -
6.新生区、永久区
新生区、永久区 文章目录新生区、永久区新生区GC清理流程:测试代码输出结果永久区元空间逻辑上存在,物理上不存在证明:输出结果结果分析 新生区 类:诞生和成长的地方,甚至死亡 伊甸园,所有的对象都是在伊甸园区new出来的! 幸存区(0,1) 真理:经过研究,99%的对象都是临时对象 GC清理流程: 先GC,后Full GC,再GC,再Full GC,直到老年区对象满了,就会出现OOM 测试代码 //-Xms8m -Xmx8m -XX:+PrintGCDetails public class原创 2021-07-21 11:59:51 · 664 阅读 · 1 评论 -
5.堆(Heap)
堆(Heap) Heap,一个JVM只有一个堆内存,堆内存的大小是可以调节的 如何调节堆内存大小? 修改VM options的参数 -Xms1024m -Xmx1024m -XX:+PrintGCDetails 其中-XX:+PrintGCDetails可要可不要,这个参数只是为了打印GC工作信息 类加载器读取了类文件之后,一般会把什么东西放到堆中?类,方法,常量,变量,保存我们引用类型的真实对象 堆内存中还要细分为三个区域: 新生区(伊甸园区): Young/New 原创 2021-07-21 11:58:28 · 78 阅读 · 0 评论 -
4.深入理解栈
深入理解栈 栈:数据结构 程序=数据结构+算法:持续学习 程序=框架+业务逻辑:吃饭 栈:先进后出,后进先出 队列:先进先出(FIFO:First Input First Output) 栈:栈内存,主管程序的运行生命周期与线程同步 线程结束,栈内存也就是释放,对于栈来说,不存在垃圾回收问题 一旦线程结束,栈就Over! 栈:8大基本类型+对象引用+实例的方法 栈运行原理:栈帧 栈满了:StackOverflowError 栈的内脏:(上面的绿色部分叫栈顶,下面的黄色部分叫栈底) 程序正在执行的方法,一定在原创 2021-07-21 11:57:06 · 74 阅读 · 0 评论 -
1.JVM的体系结构
JVM的位置与体系结构 1.对JVM的理解 1.JVM说白了就是个软件,虽然说他是个环境,实际上他就是个虚拟机软件 2.JVM是用C写的 3.JVM被包含在JRE 2.JVM的位置,如下图: 3.JVM的体系结构 理解 1.Java栈,本地方法栈,程序计数器不可能存在垃圾,所以不会有垃圾回收,为什么不可能存在垃圾呢? 因为栈里面如果有垃圾,将会把栈堵住,最底层的main方法无法弹出去,程序将会崩溃 2.JVM调优99%都是对JVM中的方法区和堆调优,主要对堆进行调优 JVM中的方法区和堆调优,主要对堆进行原创 2021-07-21 11:53:25 · 47 阅读 · 0 评论