Java堆与栈

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

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

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

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

栈有一个很重要的特殊性,就是存在栈中的数据能够共享。编译

基本数据类型存放到栈变量

引用数据类型存放到堆垃圾回收

相关文章
相关标签/搜索