
Jvm
小树ぅ
放弃不难 但坚持一定很酷!
展开
-
Native方法
native:凡是带了nativ关键字的,说明java的作用范围已经达不到了,必须去调运底层的c或c++的库。这个时候就会进入本地方法栈,然后调运本地方法接口JNI。JNI:拓展了java的使用,融合了c,c++等语言被java使用。java诞生之际,c语言盛行,为求立足,不得不去设置这样一个融合c的机制,所以在内存中开开辟一块内存,作为Native Method Stack,用来记录Native方法,在最终执行的时候去调用本地方法接口JNI。...原创 2021-04-09 23:25:37 · 279 阅读 · 0 评论 -
垃圾回收算法小结
垃圾回收算法GC的算法有哪些? 引用计数算法 复制算法 标记压缩算法 标记清除算法 引用计数算法(比较low,不高效,用的少)解释:在堆中,对象1使用1次,B使用2次,C使用0次...由于计数器也是有消耗的,如果是一个循环程序,就不能执行下去对象C不再使用所以将C清理出去,别的对象由于还会使用,则存活复制算法优点:没有内存碎片;缺点:浪费内存空间:多了一半幸存区控件永远是空的to;标记清理算...原创 2021-04-09 23:20:49 · 118 阅读 · 0 评论 -
jvm配置参数汇总
目录常见配置汇总堆设置收集器设置垃圾回收统计信息并行收集器设置并发收集器设置常见配置汇总堆设置-Xms 初始堆大小-Xmx 最大堆大小-XX:NewSize=n 设置年轻代大小-XX:NewRatio=n 设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4-XX:SurvivorRatio=n 年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Surviv.转载 2021-04-09 22:43:01 · 118 阅读 · 1 评论 -
堆内存调优、Jprofiler分析oom原因
堆:Heap,一个JVM中只有一个堆内存,堆内存大小可调节 类加载器读取class文件后将:类,方法,变量,常量,真实的对象存放再堆中三个区域: 新生区(伊甸园,幸存区(新生和养老的过渡区)) 养老区 永久存储区GC立即回收:主要在新生区中的伊甸园区和养老区。新生区中有幸存0区和1区,用于初次垃圾回收,存活下来的进入养老区。 所以: 新生区:轻量级GC 养老区:重量级GC假设内存满:OOM,堆内存不够jdk8后:永久存储区→元空间新生区: 伊甸园区:内存满了后,第一次GC,轻量级GC,存原创 2021-04-09 10:21:58 · 660 阅读 · 0 评论 -
浅聊双亲委派机制
ClassLoader分类:App(应用)类加载器Ext(扩展)类加载器(jre/lib/ext文件夹下的jar包)Bootstrap(根)类加载器(rt.jar)工作原理:1)如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行;2)如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达项层的启动类加载器;3)如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是原创 2021-04-08 19:47:05 · 103 阅读 · 0 评论