归档: 2016/3

Java堆和栈的区别

Java Heap Memory(堆)堆是用来存放java程序运行时的对象和jre的类的. 我们创建的对象总是存在堆里. GC就是清理堆中没有被引用的对象. 堆里的对象是全局可见可引用的.Java Stack Memory(栈)栈用于线程运行时存放变量的, 包括临时变量, 指向存放在堆里的对象的引用等. 栈就像一个试管一样, 遵循后进先出(Last In First Out). 当程序调用一个方法

触发Full GC的情况

原文地址: http://book.51cto.com/art/201011/235592.htm除直接调用System.gc外,触发Full GC执行的情况有如下四种。 旧生代空间不足旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误:java.lang.OutOfMemoryError: Java heap space

Java GC 监测

English Orignal Link: http://www.journaldev.com/2856/java-jvm-memory-model-and-garbage-collection-monitoring-tuning 我们可以通过命令行或者UI工具监测应用的内存使用情况. 这里我们用Java2Demo.jar作为测试应用.jstat然后我们在Java2Demo.jar所在的目录打开一

Java 垃圾回收机制

English Original Link: http://www.journaldev.com/2856/java-jvm-memory-model-and-garbage-collection-monitoring-tuning Java Garbage Collection(GC)GC就是移除未被引用的对象(垃圾对象), 清理出内存来分配其他新对象. Java垃圾回收是自动的, 这基本不需要

Java 内存管理机制

English Original Link: http://www.journaldev.com/2856/java-jvm-memory-model-and-garbage-collection-monitoring-tuning JVM Heap被分为两部分, Young Generation, Old Generation. Perm并不属于HeapYoung Generation (Yo