>
本节主要内容:
1:java中内存分配及棧、堆数组赋值的区别
2:本节总结&下节预告
本文出处:《凯哥陪数组赋值你学系列之java基础篇.Java基本语法篇》中第23篇 数组2 java中内存分配及棧、堆的区别
java内存区域分类:
1: 棧(需要掌握的)
存储局部变量的
局部变量;
定义在方法声明上和方法中的变量。比如在main方法声明的int i =3;
2:堆(需要掌握的)
存储new出来的数组或是对象

3:防范区
面向对象部分讲解
4:本地方法区
和系统相关
5:寄存器
给CPU使用的
解释:

int [] arr = new int [5];这个在棧、堆中存储
说明:
棧的特点:先进后出。可以联想到弹夹中的子弹。
弹夹中最先放进去的子弹数组赋值,最后出枪膛。
int [] arr = new int [5];这个在棧、堆中存储模型
说明:
根据棧的定义数组赋值,我们可以知道main方法是局部的。
所以main方法应该在棧中。
而 int [] arr 是在main方法中。所以也在棧区域中。
又因为,jvm最先找main方法。所以main方法被压棧,到棧区域最下面了。
根据堆的定义,我们知道 new int[5] 这个应在堆区域中。
对应的地址是0x0011 索引分别是 0 、1、2、....
系统给定的默认初始值都是0
在将堆中地址引用指向棧中。所以当我们打印出arr的时候,其实就是打印出,该
数组在堆中的地址值。
在回顾上节课:
在syetem.out.println(arr)其实打印的就是其对应在内存中的地址。
本节总结:
通过本节学习,需要掌握的:
1:堆、棧的区别及分别存放的是什么数据
2:理解堆、棧在内存中的方式
下节预告:
一维数组在动态赋值在内存中图解。
欢迎关注凯哥公众号:凯哥Java
相关标签 :
上一篇: asp虚拟主机,虚拟主机部署网站
下一篇: 迭代开发,迭代式开发的好处
微信医疗(登记+咨询+回访)预约管理系统
云约CRM微信小程序APP系统定制开发
云约CRM体检自定义出号预约管理系统
云约CRM云诊所系统,云门诊,医疗预约音视频在线问诊预约系统
云约CRM新版美容微信预约系统门店版_门店预约管理系统
云约CRM最新ThinkPHP6通用行业的预约小程序(诊所挂号)系统联系电话:18300931024
在线QQ客服:616139763
官方微信:18300931024
官方邮箱: 616139763@qq.com