1. 引用计数 1)当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1. 2)当对象的引用计数减少为0时,就意味着对象已经再没有被使用了,可以将其内存释放掉。 2. 标记-清除 1)它分为两个阶段:第一阶段是标记阶段,GC会把所有的活动对象打上标记,第 ...
分类:
编程语言 时间:
2020-10-27 11:34:47
阅读次数:
23
首先,新对象申请内存空间,然后Eden判断是否有足够的空间,如果有则新对象申请内存空间成功,否则使用Minor GC,回收不活跃的对象,然后判断Eden是否有最够的空间,如果有,则新对象空间申请成功,否则判断Servivor是否有足够的空间,如果有则讲Eden区的部分活跃对象复制到Survivor区 ...
分类:
其他好文 时间:
2020-10-21 20:46:55
阅读次数:
21
* 1963年, Marvin L. Minsky 在论文中发布了复制算法----简单的说,GC复制算法就是把某个空间里的活动对象复制到其他的空间,把原空间的所有对象都回收掉。在此,我们将复制活动的原空间称为 `From` 空间,将粘贴活动对象的空间称为 `To` 空间。GC复制算法是利用From空... ...
分类:
编程语言 时间:
2020-10-16 11:28:10
阅读次数:
38
概述 在JDK1.7以后,新增了一个命令行工具 jcmd。他是一个多功能的工具,可以用它来导出堆、查看Java进程、导出线程信息、执行GC、还可以进行采样分析(jmc 工具的飞行记录器)。 命令格式 jcmd <pid | main class> <command ... | PerfCounter ...
分类:
其他好文 时间:
2020-10-07 20:33:11
阅读次数:
27
1. 什么是go语言 Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态 、强类型、编译型语言 。Go 语言语法与 C相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。 ...
分类:
其他好文 时间:
2020-10-05 21:47:49
阅读次数:
19
java排除线上问题套路 线上问题有以下四种:cpu、gc、内存、网络 排除cpu问题套路 (1)ps -ef|grep '进程名字' (2)top -H -p 进程号 获取占用cpu较大的线程 (3)线程号转换为16进制 printf '%x\n' 线程号 (4)jstack '进程号'|grep ...
分类:
编程语言 时间:
2020-09-24 21:57:47
阅读次数:
52
1、Java SE Java基础 数据类型/常量与变量 标识符/关键字/运算符/流程控制 数组/方法 类和对象 成员变量/局部变量 匿名对象/this关键字/构造方法 封装/继承/多态 抽象/接口/内部类 集合 Java高级 线程/锁 JDK 反射 JVM GC IO和NIO,AIO 2、JAVA ...
分类:
编程语言 时间:
2020-09-18 02:19:16
阅读次数:
40
1.垃圾标记阶段算法 在堆里存放着几乎所有的Java对象实例,在Gc执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,Gc才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段。那么在JVM中究竟是如何标记一个死亡对 ...
分类:
编程语言 时间:
2020-09-18 01:30:02
阅读次数:
36
问题: JVM安全点是什么概念? finally是如何实现的?finally中抛出异常会怎么样? 1.JVM安全点是什么概念? 安全点就是某些记录线程此时调用栈、寄存器等一些重要的数据区域里什么地方包含了GC要管理的指针(对象引用),而这些对象引用是通过OopMaps结构进行记录的,可以直接通过对O ...
分类:
其他好文 时间:
2020-09-17 22:19:26
阅读次数:
33
1.极简单的部署方式 直接编译成机器码、不依赖其他库、直接运行即可部署。 2.静态类型语言 编译的时候检查出来隐藏的大多数问题 3.语言层面的并发 天生的基因支持、充分利用多核 4.强大的标准库 runtime系统调度机制、高效的GC垃圾回收、丰富的标准库 5.简单易学 25个关键字、C语言基因,内 ...
分类:
其他好文 时间:
2020-09-17 13:31:42
阅读次数:
24