内存管理一直是Java 所鼓吹的强大优点。开发者只需要简单地创建对象,而Java的垃圾收集器将会自动管理内存空间的分配和释放.但在很多情况下,事情并不那么简单,在 Java程序中总是会频繁地发生内存泄露(Memory Leaks).内存泄露是什么? 内存泄露的定义: 当某些对象不再被应用程序所使用....
分类:
编程语言 时间:
2015-04-08 22:44:00
阅读次数:
196
JVM的自动内存管理要自动化地解决两个问题:对象分配内存以及回收分配给对象的内存。回收内存前几篇已经讲了,现在说内存分配。对象的内存分配一般分配在堆内存中,也可能经过JIT 编译后被拆散为标量类型间接地在栈上分配。对象主要分配在新生代的Eden 区上,如果启动了本地线程分配缓存,将按线程优先在TLAB (本地线程分配缓存)上分配。少数情况下也可能会直接分配在老年代中,分配的规则不是固定的,与使用哪一种垃圾收集器组合,还与虚拟机中内存相关参数设置有关。...
分类:
其他好文 时间:
2015-03-20 09:21:08
阅读次数:
123
收集算法是内存回收的方法论,垃圾收集据是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现没有规定,不同的厂商、不同版本的虚拟机所提供的垃圾收集器可能会有很大差别,一般都会提供参数供用户根据自己的所用特点和要求组合出各个年代所使用的收集器。直到现在还没有最好的收集器,更加设有万能的收集器,只是对具体应用选择最合适的收集器。...
分类:
其他好文 时间:
2015-03-19 10:19:13
阅读次数:
199
概述程序计数器,本地方法栈,虚拟机栈随线程而生,随线程而灭. Java堆和方法区则不一样,这部分内存分配和回收的都是动态的,垃圾收集器所关注的是这部分内存.判断对象是否是垃圾的算法JVM没有选用引用计数算法来管理内存,最主要的是引用计数很难解决对象之间相互循环引用的问题.JVM采用了可达性分析算法来判断对象是否能回收.用GC Roots对象作为起点,向下搜索,搜索走过的路劲称为引用链(referen...
分类:
编程语言 时间:
2015-03-19 10:15:47
阅读次数:
168
垃圾收集器在对堆进行回收前,首先要做的事情就是要确定这些对象之中哪些还“存活”着, 哪些已经“死去" (即不可能再被任何途径使用的对象)。...
分类:
编程语言 时间:
2015-03-18 16:04:02
阅读次数:
164
一、垃圾收集Java虚拟机的堆里存放着正在运行的java程序所创建的所有对象。当一个对象不再被程序引用时,它所使用的堆空间可以被回收,以便后续的新对象所使用。垃圾收集器必须能够断定哪些对象是不再被引用的,并且能够把它们所占据的堆空间释放出来。在释放不再被引用的对象的过程中,垃圾收集器运行将要被释放的对象的终结方法(finalizer)。除了释放不再被引用的对象,垃圾收集器还要处理堆碎片。在一个虚拟内...
分类:
编程语言 时间:
2015-03-16 12:56:34
阅读次数:
168
Java垃圾回收机制:JVM在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存。 垃圾回收除了释放没用的对象,也可以清楚内存的记录碎片。垃圾回收机制有:分代复制垃圾回收和标准垃圾回收,增量垃圾回收。 在确定了哪些垃圾可以被回收后,垃圾收集器要做的事情就是开始进行垃圾回收,但是这里...
分类:
编程语言 时间:
2015-03-15 18:14:11
阅读次数:
174
(此话题将不断更新,请留意)第一,谈谈final, finally, finalize的差别。 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一部分,表示总是运行。finalize是 Object类的一个方法,在垃圾收集器运行的....
分类:
编程语言 时间:
2015-03-15 12:14:49
阅读次数:
174
(1)每个对象只能调用finalize( )方法一次。如果在finalize( )方法执行时产生异常(exception),则该对象仍可以被垃圾收集器收集。(2)垃圾收集器跟踪每一个对象,收集那些不可触及的对象(即该对象不再被程序引用 了),回收其占有的内存空间。但在进行垃圾收集的时候,垃圾收集器会...
分类:
编程语言 时间:
2015-03-07 19:57:28
阅读次数:
165
final、finalize、finally
final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
说明:final 声明的成员变量,必须在声明的同时赋值。final 声明的局部变量和普通的局部变量一样,可以在声明的同时不赋初值,但是在使用前必须赋值。
finalize 是Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此...
分类:
其他好文 时间:
2015-03-01 21:03:05
阅读次数:
160