java,堆和栈是怎么分工的?就是说分别用来存放什么
发布网友
发布时间:2022-02-28 14:47
我来回答
共3个回答
热心网友
时间:2022-02-28 16:16
两种不同的内存结构
栈: 存放基本数据类型、对象的引用
堆:存放对象的数据
热心网友
时间:2022-02-28 17:34
Java把内存划分成两种:一种是栈内存,一种是堆内存。
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存 中分配。
当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放 掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。
堆内存用来存放由new创建的对象和数组。
在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。
这里有参考资料,楼主也要谢谢这个空间的人,呵呵...
参考资料:http://hi.baidu.com/%CB%BC%C3%F4%D3%EA/blog/item/3933affbba8b7cd4b58f316f.html
热心网友
时间:2022-02-28 19:09
这些知识在《Think in java》中有很详细的描述说明, 贾府焦大的回答还是比较中肯。
java怎样理解“堆空间”和“栈空间”
1、堆空间 就是用来存储对象的栈空间是用来存储一些变量的 用完后会通过垃圾收集器自动清楚引用对象通过类似指针的方法来指2、程序从硬盘载入的内存-有四个内存区供程序使用heap(堆 ),stack(栈),data segment,code segmentheap堆:用来存放new出来的东西stack栈:局部变量。data segment:静态变量,...
java中的,堆,栈,还有方法区都是用来放什么的??
栈里存放的是值类型(int、float等)的值和引用类型(String、你自己创建的类对象等)在堆中的地址;堆中存放引用类u型的值,如果堆中某个值的地址在栈中没有被指向,他就会被GC回收。方法区存储所有的类和静态变量。
java语言中提及的“堆”主要有什么用?“栈又有什么用?”
堆内存用来存放由 new 创建的对象和数组,在堆中分配的内存,由 Java 虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或者对象之后,还可以在栈中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,以后就可以在程序中使用栈中的引用变量...
java中什么是堆和栈,如何应用,最好举个例子,并详细地说明一下...
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地...
请简单通俗易懂的解释一下在Java中什么叫堆 什么叫栈 谢谢
什么堆什么栈都是一样的,基本作用也一样。java中可以认为,栈用来存放局部变量的。public void fun(){ int i=0; //i 是一个局部变量,存放在栈里面的 Object obj = new Objec(); //obj 是一个对象应用,同样也是一个局部变量,存放在站里面的,但是obj指向的对象,在存在堆中 } ...
关于java的一个基础问题。
JVM 内存分栈、 堆、方法区三个区域。栈:存储局部变量、引用地址堆:存储 new 的对象方法区:存储类的代码、 static 变量和方法、常量池 当你new的时候,在栈中创建引用变量str,地址:0x11(指向堆中的值),在堆中存放str的值123,当你使用str比如②的打印,就根据0x11这个地址去对中找到值,再...
java中什么是堆和栈
堆是java内存中的一种,是用来存储java中的对象和数组,在创建一个数组或对象时,堆内存会留一段空间存放它。其优势是可以动态地分配内存大小,动态地分配内存大小,存取速度较慢。栈也是java中的一种内存,是用来执行程序,例如基本类型的变量和对象的引用变量。其优势是存取速度相对于堆要快一些,而且...
java中堆和堆栈有什么区别
1. 栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享,详见第3点。堆...
java在存储数组时栈内存和堆内存的联系是什么?
(1)栈就像装数据的桶或箱子:它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。这就如同要取出放在箱子里面底下的东西(放入的比较早的物体),首先要移开压在它上面的物体(放入的比较晚的物体)。(2)堆像一棵倒过来的树:堆是一种经过排序的树形数据结构,每个结点...
java哪些数据存在堆里哪些数据存在栈里
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是...