Java数组

什么是数组:

eg:存储10,20,30,60这些数据,可以写成

int[]  arr = {10,20,30,60};

eg:存储a,b,c这些数据,写成

int[]  arr = {'a','b','c');

eg:   存储张三、李四、王五这些数据,要写成

String[] names = {"张三","李四","王五"};

数组元素:构成数组的每一个元素

数组下标:下标就是数组元素在数组中的位置。从0开始!依次累加1(也成为索引

数组大小:数组中元素的个数,也称为数组的长度。

数组在计算机中的执行原理:

如int[]  ages = {12,19,21};

首先,左边 int[] ages 表示定义了一个数组类型的变量,变量名叫 ages
其次,右边 {12,24,36} 表示创建一个数组对象,你完全可以把它理解成一个能装数据的东西。这个对象在内存中会有一个地址值 [I@4c873330 ,每次创建一个数组对象都会有不用的地址值。
然后,把右边的地址值 [I@4c873330 赋值给左边的 ages 变量
所以, ages 变量就可以通过地址值,找到数组这个东西。

定义数组:

Java中定义数组有两种语法格式:数据类型 数组名[  ];或数据类型[  ] 数组名;(推荐第二种格式)

数组有两种初始化的方式:分别是静态、动态初始化

静态初始化数组:

在定义数组时直接给数组中的数据赋值这种方式称为静态初始化

数据类型 [] 变量名 = new 数据类型 []{ 元素 1 , 元素 2 , 元素 3 };
简化为:
数据类型 [] 变量名 = { 元素 1 , 元素 2 , 元素 3 };

如:int[]  score = new int[]{10,20,30}; 或:int[] score = {10,20,30,};

动态初始化数组:

动态初始化不需要我们写出具体的元素,而是指定元素类型和长度就行
数据名 = new 数据类型[数组长度];
eg:names = new String[5]
定义数组和为数组元素分配内存,这两步可以并在一起写,例如:
String[] names = new String[5];
注意:

使用动态初始化定义数组时,根据元素类型不同,默认值也有所不同。


 数组的元素访问:

访问数组的元素个数:数组名.length

System.out.println(arr.length);

获取数组的最大索引:arr.length-1(前提是数组中存在数据)

System.out.println(arr.length-1);

数组的遍历:

使用到for循环,例如:

int [] ages = { 12 , 24 , 36 };
for ( int i = 0 ; i < ages . length ; i ++ ) {   // i的取值 = 0, 1, 2
System . out . println ( ages [ i ]);
}

数组使用过程可能出现的问题:

eg:

第二处答案为97,不报错。

第三处会报错(得强制类型转换才行)

如果在数组中保存的元素可以自动提升 ( 自动类型转化 ) 为数组自己的类型,那是可以保存的
数组下标越界

多个变量指向同一个数组的问题:

 

总结:

 两个变量指向同一个数组时,两个变量记录的是同一个地址值。

当一个变量修改数组中的元素时,另一个变量去访问数组中的元素,元素已经
被修改过了

使用增强for循环遍历数组:

for(元素类型 变量名:要迭代的对象){

        System.out.println(变量名);

}

eg:for(int a:arr){

         System.out.println(a);

     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值