本文主要是介绍浅谈java中的堆栈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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管理的主要区域。
这篇关于浅谈java中的堆栈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!