GC安全点(Safepoint) 程序执行时并非在所有地方都能停顿下来开始GC,只有在特定的位置才能停顿下来开始GC,这些位置称为“安全点(Safepoint) ” Safe Point的选择很重要,如果太少可能导致GC等待的时间太长,如果太频繁可能导致运行时的性能问题。大部分指令的执行时间都非常短 ...
分类:
其他好文 时间:
2020-07-23 15:46:01
阅读次数:
109
JVM 垃圾收集算法 终于来到了GC收集,这一块比较干。垃圾回收的具体怎么实现,在不同平台的虚拟机可能都有不同。重点说一下 分代收集理论和算法以及发展。 分代收集理论 分代收集理论应该可以算是目前商业虚拟机的垃圾收集器的设计原则。 分代假说: 弱分代假说:绝大多数对象是朝生夕灭 强分代假说:熬过越多 ...
分类:
编程语言 时间:
2020-07-21 14:06:50
阅读次数:
74
判断对象是否存活 引用计数 假如对象被引用,则计数加1,计数为0时回收。但是存在循环引用问题:A引用B,B引用A,导致AB永远不能被回收。 可达性分析(JAVA采用的算法) 从GC Root出发看某个对象是否可达。假如不可达,则回收。 GC Root:存活时间很长的对象,有存在意义的对象。 虚拟机栈 ...
分类:
其他好文 时间:
2020-07-21 11:37:02
阅读次数:
74
新生代GC(Minor GC)指发生在新生代的垃圾收集动作,因为java对象大多都具备朝生夕灭的特性,所以Minor GC非常频繁,一般回收速度也比较快。 老年代GC(MajorGC/Full GC):指发生在老年代的GC,出现了MajorGC,经常会伴随至少一次的Minor GC,MaiorGC的 ...
分类:
其他好文 时间:
2020-07-19 16:25:20
阅读次数:
60
开篇介绍 大家好,我是Java最全面试题库的提裤姐,今天这篇是JavaSE系列的第十八篇,主要总结了JVM中的垃圾回收,在后续,会沿着第一篇开篇的知识线路一直总结下去,做到日更!如果我能做到百日百更,希望你也可以跟着百日百刷,一百天养成一个好习惯。 GC是什么? 为什么要有 GC? Java 提供的 ...
分类:
编程语言 时间:
2020-07-18 22:18:35
阅读次数:
79
System.gc()的理解 手动gc理解不可达对象的回收行为 ...
分类:
其他好文 时间:
2020-07-18 13:36:31
阅读次数:
62
在Linux下安装redis的时候,执行make报 make[1]: *** [adlist.o] 错误,百度后发现是因为 Redis是C实现的,需要gcc进行编译,而我装的centos 7默认是没有安装的,需要自己进行安装。 通过yum进行安装: yum install -y gcc g++ gc ...
分类:
系统相关 时间:
2020-07-18 00:52:08
阅读次数:
73
/* Name: Copyright: Author: Mudrobot Date: <DATETIME> Description: */ #include<bits/stdc++.h> #define gc() getchar()//caution!!! #define LL long long ...
分类:
其他好文 时间:
2020-07-17 14:04:00
阅读次数:
107
IntelliJ IDEA 启动一个之前运行正常的项目失败,报错是: java.lang.OutOfMemoryError : GC overhead limit exceeded 百度了一下,说是 IntelliJ IDEA 设置的内存太小,需要设置大一点。修改完成后,果然可以运行了,这里记录一下 ...
分类:
编程语言 时间:
2020-07-16 21:48:15
阅读次数:
310
传统的加密算法中,一个主要的问题是无法确认密钥或密文的有效性,也就是说,当密钥或密文错误时,照样能解密,但不报错。还需要我们制定一个一个原文的校验算法。为了简化这个过程,一种方式是使用,AEAD加密算法,和传统的加密相比,解密的时候会报错。省了检验的过程。 AEAD算法中一个常用的实现是AES GC ...
分类:
编程语言 时间:
2020-07-15 01:22:00
阅读次数:
78