今天主要讲了数组和数组在内存是怎样的
数组概念:
数组就是存储数据长度固定的容器,保证每个数据的数据类型一致。
数组的定义:
格式1:
数组存储的数据类型[] 数组名称 = new 数组存储的数据类型[长度 (正整数 )]
格式2:
数组的数据类型[] 数组名称 =new 数组的数据类型[]{元素1,元素2,元素3,元素4…}
格式3:
数组的数据类型[] 数组名称={元素1,元素2,元素3,元素4…}
备注:数组一旦创建出来,长度不能发生改变,所以数组具有一个定长特性
数组的特点:
1.数组的长度,在程序运行期间不可改变。
2.数组本身就是一种引用数据类型
3.数组定义的时候是引用数据类型,但是数组容器里面存储的元素可以是基本数据类型,也可以是引用数据类型
4.数组当中存储的元素的数据类型必须保持一致
默认值:
整型int----------0
浮点型-----------0.0
字符类型--------’\u0000’
布尔类型--------false
引用类型--------null
两种常见的初始化:
- 静态初始化:直接指定内容。在创建数组的时候,不指定数组的长度(存储元素的个数),而是直接指定具体的内容
- 动态初始化:指定长度即可。在创建数组的时候,直接指定数组的长度(存储元素的个数)。
- 属性length代表的就是数组的长度,int类型,数组的最大索引值为 数组名.length-1。
数组在内存当中的存储
它的流程为:
1.main()方法进入方法区
2.创建数组,JVM会在堆区开辟空间,存储数组
3.数组在内容中会有自己的内存地址,十六进制表示
4.数组当中有3个元素,默认值是0
JVM会将数组的内存地址赋值给arr
变量arr保存的是数组在内存中的地址而不是一个具体的值
JVM内存划分
区域名称 | 作用 |
---|---|
寄存器 | 给CPU使用,和开发没有关系 |
本地方法栈 | JVM在使用操作系统功能时使用,和我们开发没有关系 |
方法区 | 存储可以运行的class文件 (常量池,静态域) |
方法栈( stack ) | 方法运行时使用的内存,比如说main方法的运行,进入方法栈中运行 |
堆内存 | 用来存储对象或者输出,new出来的对象,都统统存储在堆内存中 |