java怎样理解“堆空间”和“栈空间”
1个回答
展开全部
1、堆空间 就是用来存储对象的
栈空间是用来存储一些变量的 用完后会通过垃圾收集器自动清楚
引用对象通过类似指针的方法来指
2、程序从硬盘载入的内存-有四个内存区供程序使用
heap(堆 ),stack(栈),data segment,code segment
heap堆:用来存放new出来的东西
stack栈:局部变量。
data segment:静态变量,字符串常量。
code segment:存放代码
3、首先解释一下虚拟机内存:
java虚拟机存在方法区,堆空间与栈空间,定义是这样的,虚拟机具体实现完全可以把它们分开在不同内存中,也可以把它们放在同一段内存中。
方法区存放类与方法。
堆空间存放实例化的对象。
栈空间有两种,一种是方法栈,虚拟机会为每个线程所调用的方法申请空间,而这个栈就是这些空间,另外一个是操作数栈,两个局部变量或者成员变量需要进行处理的时候,执行语句会吧这两个变量的值放入操作数栈中进行处理,处理完成以后会将处理结果弹出栈。
了解了这些后其实那些问题都不难:
第一个问题上面说得很清楚了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询