Java基础学习——数组

Java数组


数组概述


  • 数组是相同类型数据的有序集合(避免定义多个重复类型的变量)

  • 例如:一个足球队,它们就是 通过编号区分每个队友

  • 数据描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。

  • 每个数据则称为数组元素,每个数组元素通过一个下标来访问。

  • 下标是从0开始的!打死都要记得!

数组声明与创建


“数组类型”:变量类型 变量的名字 = 变量的值

两种定义方式:

int[] nums;//Java是首选这个!
​
intnums[];//效果一样,但据说这是当年为了C/C++的人更好转到Java来
​
nums=newint[10];//这样就可以存放10个int类型的数字,即它的大小

声明与创建:

 int[] nums;//1.声明一个数组
nums=newint[3];//2.创建一个数组
​
int[] nums=newint[3];//3.声明与创建一步到位,相当于“1.+2.”
​
//给数组元素赋值
nums[0] =1;
nums[1] =2;
​
System.out.println(nums[0]);//结果:1
System.out.println(nums[1]);//结果:2

/*我们一开始并没有给nums[2]赋值,
  那输出的结果会是什么呢?*/
System.out.println(nums[2]);//结果:0,即可系统会默认一个0给我们。

结果如图所示:

计算数组所有元素的和、获取数组长度、遍历数组

//计算所有元素的和
intsum=0;
​
//获取数组长度:arrays.length
for(inti=0; i<nums.length;i++){
   sum=sum+nums[i];
}
System.out.println("总和为:"+sum);
​
​
//遍历数组,获取它所有的元素;也可以像上面的一个一个输出数组的元素。
for(inti=0; i<nums.length;i++){
    System.out.println("nums["+i+"]=:"+nums[i]);
}

数组的初始化

静态初始化

//声明+创建+赋值一步到位

int[] a= {1,2,3};
//1
System.out.println(a[0]);

动态初始化

先声明+创建,再赋值

int[] b=newint[3];
b[0] =1;
b[1] =2;
b[2] =3;
//1
System.out.println(b[0]);

默认初始化
  • 首先,数组是引用类型

  • 8种基本类型也原地复习一下,我爱这样:byte、short、int、long、float、double、char、boolean;

  • 所以它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化——说白了就是即使没给它赋值,它一开始就有默认的初始值;很正常,世界上很多东西都有它正式的说法,即使它就是那么回事。

图解:int类型与上述新建的nums数组类型

  • int 是一个一个的数据

  • nums 是一组数据,是一个整体

数组内存分析图


  • 首先是要注意好每一步都有它们对应的变化!

  1. 再次提醒,在第二步时,就给予了默认初始值,也就是它会被默认初始化;

数组的四个特点


  1. 数组长度是确定的;一旦创建,大小不能改变;

  1. 数组元素打死都必须是相同类型

  1. 数组中的元素可以是任何数据类型,即包括了基本类型和引用类型;

  1. 数组变量是引用类型;理解成对象,它的每个元素都相当于对象的变量成员;

  1. 数组本身就是对象——Java对象是在堆中,new关键字new出来的都是在堆中的;

所以,数组无论是用来保存原始类型还是其它新建对象类型,它一整个本身就是

在堆中。

数组边界


下标的合法区间范围:[0,length-1],一旦越界就会报错;

publicstaticvoidmain(String[] args){
    int[] a=newint[3];
    System.out.println(a[3]);//ArrayIndexOutOfBoundsException,你已经无了
}

  • 如图所示你看见它ArrayIndexOutOfBoundsException(数组下标越界异常),就要考虑你取的下标是否在合法区间,上述代码合法区间就是:0~2。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值