讲到垃圾回收,首先就要先知道哪些对象是可以回收的。 可达性算法 这里有必要先了解一下可达性算法,以“GC Roots”的对象作为起始点,若从“GC Roots”到某对象不可达时,此对象会被判定为可回收对象。 可作为GC Roots的对象包括下面几种: 1、虚拟机栈(栈帧中的本地变量表)中引用的对象。 ...
分类:
其他好文 时间:
2018-07-29 15:24:36
阅读次数:
175
下列等式中输出为False的是(B) 这题表面上看上去好像很迷,很容易会误认为A如果是对的那么B就应该是对的,因为格式类似而且都是整型数字,容易误选D,实际上D返回的都是type对象返回结果为True,那么为啥选B呢,我有印象低于一个值的数字是内存固定创建好的,具体值是多少有点记不得了,所以其指向的 ...
分类:
其他好文 时间:
2018-07-24 19:22:26
阅读次数:
135
前言 简单的针对JAVA虚拟机(JVM)相关知识做一个总结,从此章开始这是一个系列文章,包括内容有; 1 前端编译,AOT(静态编译),JIT即时编译 2 字节码文件的结构,类加载机制以及运行时内存区域 3 关于对象的创建,内存的分配,访问的定位,判断对象是否可用,内存的回收 4 对象内存分配及垃圾 ...
分类:
其他好文 时间:
2018-07-18 17:19:46
阅读次数:
147
1:引用计算法 用判断对象的是否被引用指向来确定是否应该回收对象,缺点在于两个对象互相引用的时候是不能被回收的 2:通过判断对象是否能直接到达GC roots对象来判断是否能回收。如果两个对象互相阴影,而又不可到达GCRoots也应该完成回收。 引用的分类: 强引用:就是在程序中普遍存在,类似new ...
分类:
编程语言 时间:
2018-07-03 11:46:39
阅读次数:
166
final 用于声明属性、方法和类 分别表示属性不变、方法不可覆盖、类不可继承。 finally 是异常处理语句结构的一部分,表示总是执行。 finalize 是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,如关闭文件等。 Ja ...
分类:
其他好文 时间:
2018-06-24 21:05:19
阅读次数:
171
内存回收的流程 java的垃圾回收分为三个区域新生代、老年代、 永久代 一个对象实例化时 先去看伊甸园有没有足够的空间:如果有 不进行垃圾回收 ,对象直接在伊甸园存储;如果伊甸园内存已满,会进行一次minor gc;然后再进行判断伊甸园中的内存是否足够;如果不足 则去看存活区的内存是否足够;如果内存 ...
分类:
编程语言 时间:
2018-05-15 14:31:24
阅读次数:
173
在默认情况下,Spring应用上下文中所有bean都是作为以单例(singleton)的形式创建的。也就是说,不管给定的一个bean被注入到其他bean多少次,每次所注入的都是同一个实例。在大多数情况下,单例bean是很理想的方案。初始化和垃圾回收对象实例所带来的成本只留给一些小规模任务,在这些任务 ...
分类:
其他好文 时间:
2018-04-30 19:58:56
阅读次数:
220
今天看了几篇文章,对String、StringBuffer、StringBuilder三者之间有了一丝了解,记录一下,加深印象,以便后期查看。 1、首先从速度来说 String<StringBuffer<StringBuilder。 因为在String中,他是一个字符串常量,二StringBuffe ...
分类:
其他好文 时间:
2018-04-28 19:37:50
阅读次数:
122
C#和.NET框架 在.NET之前.NET时代 .NET框架的组成大大改进的编程环境 编译成CIL编译成本机代码并执行CLR Common Language RuntimeCLI Common Language Infrastructure各种缩写C#的演化 C#和.NET框架 在.NET之前 20 ...
1. finalize的作用 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。 finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Java中的f ...
分类:
编程语言 时间:
2018-03-07 21:47:39
阅读次数:
176