Java 开发中之十一:浅谈java中的垃圾回收机制及变量内存分配

Java的内存分配上,主要分4个块!
一块是用来装代码的,就是编译的东西。
一块是用来装静态变量的,例如用static关键字的变量,例如字符串常量。
一块是stack,也就是栈,是用来装变量和引用类型的!但区别在于,装了变量以后,变量上是有值的,而引用类型本身在stack上是没有值的。
一块是heap,也就是堆!堆可以一句话概括,装new出来的东西!

所以综上所述,基本数据类型都在stack中,而引用类型,变量是放在stack中,真正有内容的东西放在heap中,也就是当new了一个新的引用类型,他就会放在堆中,同时栈中的引用类型变量会指向堆中你new出来的东西!

值类型传递的是拷贝的一个值,而引用类型传递的是栈中的地址,变量在方法执行完后就自动断开(由GC自动回收)
堆扫描机制,不停的检查堆中的内存是不是没有栈中变量指向它,如果没有就自动回收这批这批空间。

posted on 2013-03-29 21:03  peter.peng  阅读(228)  评论(0编辑  收藏  举报