java堆栈是啥
答案:6 悬赏:50 手机版
解决时间 2021-02-24 12:45
- 提问者网友:谁的错
- 2021-02-23 22:30
java堆栈是啥
最佳答案
- 五星知识达人网友:野慌
- 2021-02-23 22:57
简单的说:Java把内存划分成两种:一种是栈内存,一种是堆内存。
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。
堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。
堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象
全部回答
- 1楼网友:雪起风沙痕
- 2021-02-24 04:12
这个问题太深奥了,即使给你说了你也不一定懂,当年我学这东西的时候讲到“栈”这个概念时久没听懂。很难懂,很专业
- 2楼网友:拾荒鲤
- 2021-02-24 03:09
简单点说就是先进后出
- 3楼网友:深街酒徒
- 2021-02-24 01:20
java在执行过程中会划分4个内存区域(heap、stack、data segment、code segment)
java开始执行会把代码加载到code segment区域然后找到main方法开始执行
data segment是存放静态变量字符串常量
stack(堆):是存放局部变量等
heap(栈):放new出来的东西
举例:Student st1=new Student();
st1是对象的引用,它存放在栈中。可以把它理解为一个指针,指向所存放在堆中的对象。
而int,double,float等原始数据类型则存放在栈中。这是由于分配栈的速度比分配堆的速度快的多,而这些数据经常使用。
java开始执行会把代码加载到code segment区域然后找到main方法开始执行
data segment是存放静态变量字符串常量
stack(堆):是存放局部变量等
heap(栈):放new出来的东西
举例:Student st1=new Student();
st1是对象的引用,它存放在栈中。可以把它理解为一个指针,指向所存放在堆中的对象。
而int,double,float等原始数据类型则存放在栈中。这是由于分配栈的速度比分配堆的速度快的多,而这些数据经常使用。
- 4楼网友:掌灯师
- 2021-02-24 00:18
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存:在执行过程中会划分4个内存区域(heap、stack、data segment、code segment)。
java开始执行会把代码加载到code segment区域然后找到main方法开始执行;
data segment是存放静态变量字符串常量;
stack(堆):是存放局部变量等;
heap(栈):放new出来的东西;
举例:Student zhidao=new Student();
//zhidao是对象的引用,它存放在栈中。
//可以把它理解为一个指针,指向所存放在堆中的对象。
当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。
堆内存用于存放由new创建的对象和数组。
在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯