JVM是JAVA世界的核心,了解它有助于我们更好调试,调优和开发程序,最近散仙在看JAVA特种兵一书,看完觉得,作者写的内容还是挺不错,大家感兴趣的,也可以购买本温故而知新下。在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图:大多数情况下,我们并不需要关...
分类:
其他好文 时间:
2015-04-06 21:44:41
阅读次数:
142
简介闭包(closure)是javascript语言的一个难点,也是他的特色,很多高级应用都要依靠闭包实现闭包的特性闭包有三个特性: 1.函数嵌套函数 2.函数内部可以应用外部的参数和变量 3.参数和变量不会被垃圾机制回收闭包的定义及优缺点闭包是指有权访问另一个函数作用域中的变量的函数,创建闭...
分类:
Web程序 时间:
2015-04-06 21:25:15
阅读次数:
196
首先我们需要知道Java的内存分配与回收全部由JVM垃圾回收机制自动完成。每种JVM实现可能采用不同的方法实现垃圾回收机制。在收购SUN之前,Oracle使用的是JRockit JVM,收购之后使用HotSpot JVM。目前Oracle拥有两种JVM实现并且一段时间后两个JVM实现会合二为一。HotSpot JVM是目前Oracle SE平台标准核心组件的一部分。市面上探讨垃圾回收机制,默认都是...
分类:
其他好文 时间:
2015-04-05 20:34:02
阅读次数:
161
终结操作表面上视乎很简单:创建一个对象,当它被回收时,它的Finalize方法会得到调用。但是一旦深研究下去,就会发现终结操作原非这么简单。应用程序创建一个新对象时,new操作符会从堆中分配内存。如果对象的类型定义了Finalize方法,那么在该类型的实例构造函数调用之前,会将指向该对象的一个指针放...
分类:
其他好文 时间:
2015-04-05 10:31:39
阅读次数:
200
Finalize方法在垃圾回收结束时被调用,下面有5种事件会导致开始垃圾回收1.第0代已满 第0代已满,垃圾回收会自动开始。该事件是目前导致Finalize方法被调用的最常见的一种方式,因为虽然应用程序的运行并分配新对象,这个事件会自然而然的发生。2.代码显示调用System.GC的静态方法Coll...
分类:
其他好文 时间:
2015-04-05 08:56:20
阅读次数:
114
继续上一篇文章提到的构造异常话题,第三个场景:对继承中,某个基类构造异常,而其他基类已构造成功,则构造成功的基类不会析构,由编译器负责回收 1 class B{ 2 3 public: 4 B(){ 5 age = 0; 6 cout , shared_pt...
分类:
编程语言 时间:
2015-04-05 01:12:09
阅读次数:
251
【哪些内存需要回收】 当对象判定为"已死"状态,虚拟就要采取一定的手段将这些对象从内存中移除。 1.引用计数算法 很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器都为0的对象就是不可能再被使用的。 引...
分类:
编程语言 时间:
2015-04-04 15:08:14
阅读次数:
180
几条主要的最普遍的内存分配规则: 1.对象优先在Eden分配 大多数情况下,对象在新生代的Eden区中分配。 当Eden区没有足够的空间进行分配时,虚拟将发起一次Minor GC,如果GC后新生代中存活的对象无法全部放入Survivor空间,则需要通过分配担保机制提前进入到老年代中,前提是老年代中不...
分类:
编程语言 时间:
2015-04-04 14:56:08
阅读次数:
143
一、一个由C/C++编译到程序占用的内存分为以下几个部分:
1、栈区(stack)——由编译器自动分配释放,在不需要的时候自动清除。用于存放函数的参数、局部变量等。操作方式类似数据结构中的栈(后进先出)。
2、堆区(heap)——一般由程序员分配释放,若程序员分配后不释放,程序结束后可能由OS回收。不同于数据结构中的堆,分配方式有些类似链表。
3、全局区(静态区)——全局变量和静态变量存储在这里。程序结束后由系统释放。在以前到C语言中,全局变量又细分为初始化的(DATA段)和未初始化到(BSS段),在...
分类:
编程语言 时间:
2015-04-04 12:15:54
阅读次数:
185
闭包有三个特性:1.函数嵌套函数2.函数内部可以引用外部的参数和变量3.参数和变量不会被垃圾回收机制回收闭包的定义及其优缺点闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量使用闭包有一个优点,也是它的缺点,就是...
分类:
编程语言 时间:
2015-04-04 01:11:28
阅读次数:
190