Java堆和堆栈与JVM堆和堆栈的区别和介绍

一、 Java的堆内存和堆栈内存
Java将内存分为两种:一种是堆内存,另一种是堆栈内存。
堆:主要用于存储实例化的对象,数组。内存空间是由JVM动态分配的。 JVM只有一个堆内存,线程可以共享数据。
堆栈:主要用于存储局部变量和对象引用变量。每个线程将具有一个独立的堆栈空间,因此线程之间不会共享数据。
在函数中定义的一些基本类型的变量和对象引用变量在函数的堆栈存储器中分配。在代码块中定义变量后,Java会在堆栈上为此变量分配内存空间。当超出变量的范围时,Java会自动释放为该变量分配的内存空间,并且该内存空间可立即用于其他用途。
堆内存用于存储由new创建的对象和数组。
在堆中分配的内存由Java虚拟机的自动垃圾收集器管理。

二、堆栈和堆的异同和优缺点。堆栈和堆都是Java在Ram中存储数据的地方。与C ++不同,Java自动管理堆栈和堆,程序员无法直接设置堆栈或堆。堆栈的优点是访问速度比堆快,仅次于直接位于CPU中的寄存器。但是缺点是必须确定存储在堆栈中的数据的大小和生存期,这缺乏灵活性。此之后,Java会自动释放为该变量分配的内存空间,并且该内存空间可立即用于其他目的。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-362712-1.html
埋怨命苦真悲哀
不能认同