![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
JVM
德玛西亚!!
这个作者很懒,什么都没留下…
展开
-
Jprofile工具分析OOM原因
/** * OutOfMemoryError * -Xms 设置初始化内存分配大小 默认1/64 * -Xmx 设置最大分配内存,默认1/4 * -XX:+PrintGCDetail // 打印GC垃圾回收信息 * -XX:+HeapDumpOnOutOfMemoryError //oom DUMP * -Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError */ public class Heap2 { byte[] array = new byt原创 2020-09-17 21:34:35 · 199 阅读 · 0 评论 -
堆Heap
/** * 堆 * 一个JVM只有一个堆内存,堆内存的大小是可以调节的。 * 类加载器读取了类文件后,一般会把类,方法,常量,变量,保存我们所有引用类型的真实对象; * <p> * 堆内存中还要分为三个区域: * 1、新生区(伊甸园区) * 2、养老区 * 3、永久区(元空间):这个区域常驻内存的。用来存放JDK自身携带的Class对象。 * Interface元数据,存储的是java运行时的一些环境或类信息,这个区域不存在垃圾回收! * 关闭VM虚拟就会释放这个区域的内存。原创 2020-09-17 20:48:33 · 78 阅读 · 0 评论 -
栈
/** * 栈:先进后出 桶 * 栈内存,主管程序的运行,生命周期和线程同步;线程结束,栈内存也就释放,不存在垃圾回收问题 * 一旦线程结束,栈就over! * 栈运行原理:栈帧 * 栈中存放8大基本类型+对象引用+实例方法 * */ public class Stack { public static void main(String[] args) { new Stack().stack();//main方法先入栈,stack(), a(),stack()...,原创 2020-09-17 15:39:30 · 60 阅读 · 0 评论 -
native关键字
/** * native:凡是带了native关键字的,说明java的作用范围达不到了,会去调用底层c语言的库。 * 会进入本地方法栈,调用本地方法的本地接口 JNI * <p> * JNI作用:扩展java的使用,融合不同的编程语言为Java所用 * 它在内存区域中专门开辟了一块标记区域:Native Method Stack,登记native方法 * 在最终执行的时候,加载本地方法库中的方法通过JNI * * 方法区:方法区是被所有线程共享,所有字段和方法字节码,以及一些特殊原创 2020-09-17 15:38:11 · 676 阅读 · 0 评论 -
双亲委派机制
https://blog.csdn.net/inspiredbh/article/details/74889654?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channe原创 2020-09-15 20:48:07 · 63 阅读 · 0 评论