Java堆与栈

Posted 笑见蓝雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java堆与栈相关的知识,希望对你有一定的参考价值。

Java的堆是一个位于随机访问存储器(RAM)的运行时数据区。通常使用new操作符在堆中创建对象,它们不需要程序代码来显式的释放

堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。

但缺点是,由于要在运行时动态分配内存,存取速度较慢。

Java的栈也位于RAM,它的存取速度比堆要快,仅次于寄存器且据可以共享,主要存放一些基本类型的变量和对象的引用;但存在于栈中的数据大小与生存期必须是确定的,缺乏灵活性。

栈有一个很重要的特殊性,就是存在栈中的数据可以共享。

基本数据类型存放到栈

引用数据类型存放到堆

以上是关于Java堆与栈的主要内容,如果未能解决你的问题,请参考以下文章

Java堆与栈

Java堆与栈

“Java”内存区域-“堆与栈”

Java基础-JVM堆与栈

让你彻底明白JAVA中堆与栈的区别

java学习之堆与栈的区别