java中栈内存和堆内存

内存结构:

java程序在运行时,需要在内存中分配空间。为了提高运算效率,又对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方法。

1、栈内存

用于存储局部变量,当数据使用完,所占空间会自动释放。

2、堆内存

1、数组和对象,通过new 建立的实例都存放在堆内存中。

2、每一个实体都有内存地址。

3、实体中的变量都有默认初始化值。

4、实体不在被使用,会在不确定的时间内被垃圾回收器回收。


下面是一个栈内存操作:

步骤:

1、先给x 分配一个内存空间,并赋值为1;

2、然后给y分配一个内存空间,并把x的值赋给y,y的值为1;

3、然后再给y赋值为2,同时y=1,被释放掉;

4、但x的值从头到尾就没有变化过,故x的值还是为1

下面是一个数组的栈内存和堆内存的操作:

步骤:

1、数组名x,不占用内存,存放在栈内存中,new 建立的实例都存放在堆内存中

2、在堆内存中给数组分配三个空间【0】、【1】、【2】;

3、分配的三个内存空间,每一个实体都有内存地址,不妨假设【0】的内存地址是0x0088;

4、栈内存中的数组名x是通过把堆内存中的【0】地址传给数组名x,然后x就可以指向堆内存中的数组;

5、指向堆内存中的第一个元素的地址,通过x[0]来访问第一个元素存放的数组值。

6、然后依次访问数组中各个元素。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值