小静的心路历程--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][]
二维数组中定义三个一维数组,每个一维数组长度没有指定
下一章 方法
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基础语法第一章--方法的参数是基本数据类型和引用类型
- 小静的心路历程--javase基础语法第一章--引用数据类型
- 小静的心路历程--javase基础语法第一章--方法
- 小静的心路历程--javase基础语法第一章--基本语法之引用数据类型
- (均为听课笔记)php初级编程员的心路历程--javase基础语法第一章
- JavaSE----基础语法(数组)
- 黑马程序员 JavaSE-04 Java基础语法3:方法、数组
- 黑马程序员_JavaSE基础04 之 循环嵌套 函数重载 数组 内存空间划分
- JavaSE入门学习9:Java基础语法之数组
- JavaSE入门学习8:Java基础语法之数组
- 简单理解JavaSe基础中的内存分析
- 黑马程序员——2.2.基础语法(函数、重载、数组、内存划分,进制转换)
- 黑马程序员-----java基础语法 函数数组
- Node.js的学习历程二同步异步调用等基础知识的理解
- 深入理解数组,内存中的数组
- 深化Java基础之——数组与内存控制
- [C++学习历程]基础部分 C++中的指针数组和结构
- java基础语法——函数和数组
- Java基础学习总结(71)——深入理解Java虚拟机内存
- JavaSE编程基础 第四章 数组