浅谈java中的堆栈

来源:互联网 发布:天津搜索引擎优化 编辑:程序博客网 时间:2024/04/29 19:56

1.在java虚拟机中,运行时的数据区包括:

方法区(Method Area)、虚拟机栈(VM stack)、本地方法栈(Native Stack)、堆(Heap)、程序计数器(PC);

我们在编程过程中,常说的栈和堆指的是:虚拟机栈和堆。(其他的以后会有补充)。


2.栈和堆都是存放在内存中的(RAM),而且,两者都是由JVM来调用的,程序员是无法直接操作的。


3.new出来的对象实例几乎全部是存放在堆中的,new关键字可以理解为是直接调用该类对应的构造方法。


4.栈中一般是存放堆中的引用。

例如: String s = "abc"; //其中,s是指向"abc"的引用,"abc"则放入到堆内存中。 String有些特殊,具体内容以后也会补充!


5.栈中存储的变量一旦其生命周期结束,则立即会被JVM回收,堆中的变量只有在它的引用为null的时候,才有可能被JVM回收。(这也是为什么不能过于依赖JVM回收的原因)。


6.Java堆也称为"GC堆",是jvm管理的主要区域。



0 0
原创粉丝点击