写在开头
大朋友小朋友节日快乐 🎈
“你可以不太乖 你不可以学坏”
今天编辑了下About页面,复习了之前学过的内容,接下来再啃一块大骨头。
进入正题,搜索功能已经完善好了,可以直接从左侧搜索~
这一篇写java数组。
概念
举个栗子:
现在想存储5名同学的姓名,目前我们可以用定义5个String类型的变量,存储学生姓名来实现。
现在我想存储5000名同学的姓名,我们一个再用定义5个String类型的变量,就显得异常复杂,且查找同学的时候也变得很困难。
我们就想着找一个容器,存放着大量的数据,这个容器就是数组。
数组可以存放任意类型,但是同一次存放的必须是同一个类型。数组自动编号,通过数组这种特有的方式,将每一个学生的信息都获取到,编号从0开始。
数组的定义方法 //两种定义方式
引用数据类型: 类(class),数组,接口
动态定义
定义格式:
数据类型[] 数组名 = new 数据类型[数组的长度];
int[] arr = new int[3];
数组定义格式分析:
数据类型 : 当前数组容器中,可以存放什么类型的数据
[] : 表示是一个数组,一维数组
数组名: 名字,符合标识符的规范
new : 新建,给数组在内存中开辟一块空间,用于存储数据
数据类型: 与前面的数据类型保持一致
[数组长度]: 数组长度必须给出,确定在内存中给数组开辟的空间是多大
举例: int[] arr = new int[3];
说明: 数组作为引用数据类型存在,变量值已经不是普通的数值,变量就表示当前数组在内存中的地址(类的变量名也是一样,都是在内存中的地址值)
静态定义:
当明确知道数组中的内容,可以进行静态定义,静态定义仍然在内存中开辟空间,只不过JVM给的初始值0,还是有,JVM赋完初值后,数组大括号中的数据依次替换到对应的索引位置处
定义方式: 数据类型[] 数组名 = {数据};
举例: int[] arr = {2,3,4,7,-2,77};// 数组长度为6
索引: 0索引上的元素值2,依次类推,… 5索引上的元素为77
说明: 大括号中的数据个数,没有限定
在代码中展示下:
1 | //数组的定义 |
数组中元素的获取 // 索引
int[] arr = new int[3];// 索引 0-2
arr数组,里面能存储3个int类型的元素
索引: index,所有类型的数组,都具有索引
索引就表示,在数组中,每个元素在数组中的房间号,与数组的内存地址无关
索引都从0开始,到(数组长度-1)结束
如何通过索引获取到对应的元素?
数组名[索引];
arr[0];
arr[1];
arr[2];
代码
1 | // 获取数组中的元素 |
数组的内存图
数组元素的手动赋值
1 | // 获取数组中的元素 |
数组与内存地址的对应案例
1 | //每次new都在内存中创建新的地址空间 |
1 | //A数组地址赋值给B数组后,B数组中元素的变化案例 |
1 |
|
晚安
今天就到这里了,明天见,加油!