javaGC回收机制 在面试java后端开发的时候一般都会问到java的自动回收机制(GC)。在了解java的GC回收机制之前,我们得先了解下Java虚拟机的内存区域。 java虚拟机运行时数据区 java虚拟机在执行的过程中会将其管理的内存划分为不用的数据区域,不同的区域有不同的作用以及线程时间。 ...
分类:
编程语言 时间:
2019-07-02 12:13:12
阅读次数:
117
Java垃圾回收机制算法 为什么要进行垃圾回收 因为当一个对象的引用不可达,或者一个对象没有任何引用指向它,那么它就没有必要在内存中继续存在,此时它就处于可以被GC(垃圾回收器)回收的对象,jvm虚拟机动态的收集不可用的对象,达到释放内存的目的。 垃圾回收区域 通常情况下的jvm虚拟机把内存都分为了 ...
分类:
编程语言 时间:
2019-07-02 00:29:03
阅读次数:
135
标签: C++ 1. 类的初始化 几种不同初始化的区别: A a;和A *a=new A()的区别,示例程序如下: 执行结果如下,通过A a1("gqx")形式初始化的对象,在程序结束的时候会自动回收内存,调用析构函数,而通过new方式初始化的对象需要手动释放内存。 修改主程序如下后: 执行结果如下 ...
分类:
编程语言 时间:
2019-07-01 21:34:52
阅读次数:
154
一、垃圾回收器和finalize() java垃圾回收器只负责回收无用对象占据的内存资源。但是如果你的对象不是通过 new 创建的(所有的new 对象都往堆中开辟资源,在一个地方,方便清理/管理资源),它会不知道该如果释放该对象的这块特殊内存。为了应对这个情况,Object自带一个finalize( ...
分类:
编程语言 时间:
2019-07-01 10:24:50
阅读次数:
130
1.垃圾回收算法 1.1 标记-清除算法 算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。它是最基础的收集算法,效率也很高,但是会带来两个明显的问题: 1.效率问题 2.空间问题,标记清除后会产生大量不连续的碎片 1.2 复制算法 为了解决效率问题 ...
分类:
编程语言 时间:
2019-06-30 14:26:56
阅读次数:
140
1.java堆中几乎放着所有对象的实例,那么什么样子的对象才是可以被回收的呢? 1.1.引用计数法: 给对象添加一个引用计数器,当有地方引用的时候,计数器就+1,引用失效就-1;任何时候当计数器为0,那么这个对象就是可以被回收的。该方法实现简单,效率也高,但是并没有被主流的虚拟机采用,因为很难解决对 ...
分类:
其他好文 时间:
2019-06-30 09:41:35
阅读次数:
86
众所周知,Java语言的一个重要特性就是自动内存管理与垃圾回收机制。垃圾收集也被称作GC(Garbage Collection),在讲到GC的时候,我根据《深入理解Java虚拟机》中提到的内容,打算从三个方面讲述: 哪些内存需要回收? 什么时候进行回收? 怎样回收? 首先从理论上讲述这三个问题,然后 ...
分类:
其他好文 时间:
2019-06-29 15:18:43
阅读次数:
93
1.通俗的理解java对象的这一辈子 我是一个普通的java对象,我出生在Eden区,在Eden区我还看到和我长的很像的小兄弟,我们在Eden区中玩了挺长时间。有一天Eden区中的人实在是太多了,我就被迫去了Survivor区的“From”区,自从去了Survivor区,我就开始漂了,有时候在Sur ...
分类:
编程语言 时间:
2019-06-29 13:00:14
阅读次数:
142
什么是NSCache NSCache主要用来存储临时数据(键值对),当内存资源不够时,系统会自动释放部分数据。它有三个特点: ? NSCache为了保持不占用过多的系统内存,它有多种自动回收内存策略;当系统内存出现不足时,它会回收部分内存使系统正常运转,这种回收是不可控的。 ? 可以在多线程中对NS ...
分类:
系统相关 时间:
2019-06-29 01:15:26
阅读次数:
162
恢复内容开始 一、编程语言分类: 1.机器语言:直接用二进制的0和1和计算机(CPU)直接沟通交流,直接操作硬件。 优点:不需转换,计算机能直接读懂,执行速度快。 缺点:二进制代码复杂多样,理解甚难,开发效率低。 ps:站在奴隶的角度说奴隶能够听得懂的话 0000 代表 加载 (LOAD) 0001 ...
分类:
编程语言 时间:
2019-06-29 01:10:40
阅读次数:
112