Java数组
基本概念:数组是一组数据,是使用有序的方式对数据进行存储的一种结构
数组中的名词和属性
数组的元素
数组的索引/下标/角标:每一个元素的门牌号(标识),从0开始的
数组可以根据下标获取元素;数组名[下标]
数组的长度:数组元素的个数,,数组名 .length
数组的特性
长度是固定不可变的
所有的数据类型都有自己对应的数组
同一个数组数据类型必须一致
创建数组
静态创建/静态初始化
1.完整写法
数据类型[ ] 数组名=new 数据类型[ ]{数据,数据,数据};
2.简便写法
数据类型[ ] 数组名={数据,数据,数据};
动态创建/动态初始化
数据类型[ ] 数组名=new 数据类型[长度];
系统会给默认值(出厂设置)
整数类型 0
浮点数类型 0.0
字符串(引用数据类型)类型 null
char 0/空字符
布尔类型 false
直接打印数组名[ 1@15db9742- 分割符
[工这个数据的类型是int类型的一维数组15db9742是十六进制的内存地址
进制常识:十进制,没有十,0~910
二进制,没有二,0 110
16进制,没有十六0~9 a b c d e f
java内存结构
―寄存器由cpu直接调度
-本地方法[区由本地操作系统调度
-方法区存储iava编译好后的class文件的内容
维:对象的实例( new出来的东西,等号的右边)
栈:基本类型的局部变量,对象的引用(等号左边)
数组展示打印:system.out. println(Arrays.tostring(array));
数组的遍历
概念:想要一个一个获取数组中的元素-方式—:单独根据下标一个一个拿
方式二:使用循环遍历
for (int a = 0 ; a < array. length ; a++){
system.out.println (array [a] ) ;
}
数组会遇到的bug
ArrayIndexoutofBoundsException(数组越界)
数组 下标 超出 边界 异常
数组中思想-累加的思想
在循环外面定义一个变量,在循环过程中进行"累"的运算
1+2+3+++68 , 321,76,32,7613,2
将没有规律的数据放在一个数组中进行统一遍历运算
统计的思想!321,76,32,7613,2,32,78,45在循环遍历之外定义一个变量用于计数
在循环遍历过程中判断满足条件的情况下,计数器增加
求最值的思想321,76,32,7613,2,32,78,45在循环遍历之外定义变量作为参照物
在循环过程中将参照物与每一个元素进行比对如果元素比参照物大,将元素的值赋值给参照物
数组的修改
-元素的修改
数组名[下标]=新的值
地址的修改
int[] array = {1,2,3,4};
array = new int [ 3];
int[] arr = { 22,44,66} ;
array = arr;// 数组的浅拷贝,赋值地址(本质上就是同一个对象,互相影响)
深拷贝
将某个数组中的每一个元素一个一个赋值给另一个数组
本质上是两个对象(两个数组,互不影响)