您的位置:首页 > 编程语言 > Java开发

小静的心路历程--javase基础语法第一章--数组,内存的理解

2018-03-22 10:50 337 查看
JVM(虚拟机)对自己的内存进行了划分,分成了五个区域。JVM->找系统划分一块内存给虚拟机
1.寄存器:内存和CPU之间
2.本地方法栈:有的功能JVM也完成不了,要调用系统中的功能,利用本地方法栈的内存
3.方法和数据的共享区,程序运用的.class文件要进去的地方
4.方法栈:所有的方法进入的内存(运行方法时).main方法
5.堆:存储的是容器(数组等等)与对象
数组的内存理解
main(){
int[] arr=new int[5];
}
方法栈:main方法运行
共享区:方法区数据的共享区,.class文件,最先有数据
堆    :数组容器
main方法运行 int[] arr=new int[5];
JVM 在堆内存,开区间,存储数组容器
所有的数据,在内存中,就有自己的内存地址
数组的数据都是在堆内存中连接的地址
比如 int[] arr={1,5,2,3,5};

System.out.println(arr);
//输出结果 [I@424c0bc4
这个内存地址包含了该数组的成员数据
因此 数组存的不是数据,而是引用的内存地址
arr引用类型,保存的数据,实际是内存中的地址
方法执行完,方法栈中的数据和堆中的数据地址就没有了
数组容器:存储到数组中的每个元素,都有自己的自动编号
自动编号,最小值是0,最大值,长度-1
自动编号专业名词,索引(index),也叫下标
访问数组存储元素,依赖于索引,公式 数组名[索引]
int[] arr=new int[3];//数组元素默认值
                                //数组长度  arr.length

Java提供了一个数组的属性  arr.length 数组的长度
二维数组  数组中数组
定义方式  int[][] arr=new int[3][4]; //定义的二维数组
[3] 标识这个二维数组中有3个一维数组
[4] 3个一维数中每个数组长度为4
二维数组存的是一维数组的内存空间引用地址
int[][] arr2=new int[3][4];

System.out.println(arr2);
//输出:[[I@424c0bc4
System.out.println(arr2[0]+"*****"+arr2[1]+"*******"+arr2[2]);

//输出:[I@424c0bc4*****[I@3c679bde*******[I@16b4a017
二维数组的定义和访问
最简单的二维数组方式
int[][] arr3= {{1,2},{2,3},{3,4}};

int[][] arr=new int[3][]
二维数组中定义三个一维数组,每个一维数组长度没有指定
下一章 方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javase