RefBase:含有内部类weakRef_Impl(影子对象),影子对象中有两个引用计数变量(强引用计数,弱引用计数) sp,构造的时候,强,弱引用计数均+1,析构的时候都-1 wp,构造的时候,弱引用+1,强引用不变,析构的时候弱引用-1,强引用不变 强引用计数=0:实际对象被delete 弱引用 ...
分类:
移动开发 时间:
2019-12-18 14:25:23
阅读次数:
98
JVM的垃圾回收机制,在内存充足的情况下,除非你显式的调用System.gc(),否则不会进行垃圾回收;在内存充足的情况下垃圾回收会自动运行。 一、引用计数算法 1.定义:引用计数算法会给对象添加一个引用计数器,每当有一个地方引用他的时候,计数器就加1;当引用失效的时候计数器值就减1。当计数器为0的 ...
分类:
编程语言 时间:
2019-12-15 10:22:16
阅读次数:
110
1.文件内核数据结构 一个打开的文件在内核中使用三种数据结构表示: (1)文件描述符表 文件描述符标志 文件表项指针 (2)文件表项: 文件状态标志:读、写、追加、同步和非阻塞等状态标志 当前文件偏移量 i节点表项指针 引用计数器 (3)i节点 文件类型和对该文件的操作函数指针 当前文件长度 文件所 ...
分类:
其他好文 时间:
2019-12-10 23:59:43
阅读次数:
185
垃圾收集器与内存分配策略 1、对象已死吗 1)、引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的 主流的Java虚拟机里面没有选用引用计数算法来管理内存,其中最主要的原因是它很难 ...
分类:
其他好文 时间:
2019-12-09 12:15:21
阅读次数:
71
内存管理机制(垃圾回收机制) 对象分类: 定长: int / float #define _PyObject_HEAD_EXTRA \ struct _object *_ob_next; \ struct _object *_ob_prev; ? typedef struct _object { _ ...
分类:
其他好文 时间:
2019-12-08 12:47:14
阅读次数:
78
内存泄漏与垃圾回收机制 什么是内存泄漏? 有些语言(比如c语言)必须手动释放内存,程序员负责内存管理。这很麻烦,所以大多数语言提供自动内存管理,减轻程序员的负担,这被称为"垃圾回收机制"。 javascript垃圾回收机制原理: 1、标记清除 2、引用计数 ...
分类:
其他好文 时间:
2019-12-03 23:15:22
阅读次数:
118
1. 堆内存结构 Java堆从GC的角度可以细分为:新生代(Eden区、From Survivor区和To Survivor区)和老年代。 1.1 新生代 1.2 老年代 2.垃圾回收机制算法 2.1 垃圾回收机制 2.2 对象回收判断 2.2.1 引用计数算法 引用计数法就是如果一个对象没有被任何 ...
分类:
其他好文 时间:
2019-12-01 22:40:00
阅读次数:
131
一、 判断对象“已死” 1. 引用计数法:给对象中添加一个引用计数器,每当有一个地方引用他,计数器值+1;当引用失效,计数器 -1。计数器为0则表示,对象没有被使用。 缺陷:循环引用问题。 2. 可达性分析算法:通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过 ...
分类:
其他好文 时间:
2019-11-30 22:43:31
阅读次数:
96
引用计数法 :Java虚拟机并未采用这种算法 缺点:1.对象的循环引用 2.伴随加法和减法操作,有一定的性能开销 -可达对象 -不可达对象 : 通过根对象进行引用搜索 复制算法:通常存活对象很少,这个算法效率高,也没有空间碎片,但是内存折半 标记清除法:会产生空间碎片 标记压缩法:老年代存活对象多, ...
分类:
编程语言 时间:
2019-11-29 10:41:24
阅读次数:
94
linux下文件删除的原理: Linux 是通过 Link 的数量来控制文件删除的,只有当一个文件不存在任何 link 的时候,这个文件才会被删除。 一般来说,每个文件都有2个link计数器: i_count 进程的引用计数 i_link 硬链接数量 进程的引用计数 硬链接数量 i_count的意义 ...
分类:
系统相关 时间:
2019-11-23 22:17:19
阅读次数:
94