永发信息网

java堆栈是啥

答案:6  悬赏:50  手机版
解决时间 2021-02-24 12:45
java堆栈是啥
最佳答案
简单的说:Java把内存划分成两种:一种是栈内存,一种是堆内存。

在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。

堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象
全部回答
这个问题太深奥了,即使给你说了你也不一定懂,当年我学这东西的时候讲到“栈”这个概念时久没听懂。很难懂,很专业
简单点说就是先进后出
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把内存分成两种,一种叫做栈内存,一种叫做堆内存:在执行过程中会划分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虚拟机自动垃圾回收器来管理。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求经过点(1,0) (2,2) 两点的一次函数解析式?
中国移动苏州星海生活广场营业厅我想知道这个
工行银行卡可以转地域吗?
在微信朋友圈怎么发表说说啊
相亲相了一个又一个,怎么就没有合适的呢
美韵少儿艺术培训中心(华兴分部)地址在什么地
尚水天成小区里面的幼儿园叫什么名字
用忧愁和惋惜造句
下图中a、b、c分别表示3种细胞外液,箭头表示
春字五行属什么?有的说是属金,有的又说是属
天尽头梁怎么去啊,有知道地址的么
为什么洛克变成守夜人了
八年级上册,数学资料,四清导航多少钱一本
求教物理知识:樟脑球可以升华,冰可以升华,那
板上钢筋上打的这个标高是什么作用
推荐资讯
龙祥花园东门在哪里啊,我有事要去这个地方
找cf兄弟 朋友
中国人说韩语,韩国人听会怪吗
中国女子什么原因在韩国工厂丧生?
2g网络什么时候停用
男打女头是什么意思?
作为四年级的一名学生,上课应该怎么做?
中国移动是按 自然月收费用的么
夜猫子长什么样
阜沙到广州站怎么去
车载dvd应该怎样接这个功放
垂云通天河-绿化区地址在什么地方,想过去办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?