5数组、可变参数、Arrays数组工具类

本文详细介绍了Java中的数组,包括静态和动态创建数组、数组初始化、遍历方式以及异常处理。强调了数组的特性,如长度固定、内存连续、元素类型一致。还讨论了数组作为参数传递时的按值或按引用传递原则。最后提到了可变参数的概念及其使用注意事项,并提及了Arrays工具类的作用。
摘要由CSDN通过智能技术生成
# java

## 介绍
java基础

#### 数组
数组也相当于对象,有索引(索引从0开始)与长度的属性,数组里面装的是每一个元素,查看元素修改元素时用到索引,查看数组容纳元素的数量时用到长度

静态创建数组:在数组创建时就给每个元素赋值
注意静态创建数组声明和创建必须在同一行

动态创建数组:在数组创建时只是规定了数组的长度,并没有指明数组内元素的值,虚拟机会给默认值
int默认值0
byte默认值0
short默认值0
long默认值0
double默认值0.0
float默认值0.0
boolean默认值false
char默认值啥也不是
string默认值是null,空引用

无论是静态创建还是动态创建都是可以修改数组内元素值的

数组的创建有两种
动态创建  type[] arr = new type[长度];
静态创建  type[] arr = new type[长度]{元素1,元素2,元素3,...};
         type[] arr = {元素1,元素2,元素3,...};
数组的初始化有三种

静态初始化  静态创建时,自定义数组元素
动态初始化  交给jvm自动完成初始化
默认初始化  动态创建完毕,手动编码给每个元素赋值

数组是引用数据类型

数组的遍历
for循环:通过索引直接定位到堆内存上的元素,可以对元素产生影响,写法略微繁琐,即可遍历也可修改
foreach循环:不能通过中间临时变量影响数组元素,写法简单,只能通过中间元素遍历

操作数组可能出现的异常
数组越界异常
空指针异常

引用类型可以赋值为null  数组 string
基本数据类型不能赋值为null

null空引用,在栈内存产生空间,但是空间内部没有引用任何堆内存
调用空引用对象的属性和方法就会出现

数组的基本特点(数组存储数据的特征)
数组的长度是确定的,数组一旦被创建,它的大小就是不可以改变的
数组在内存中分配连续的内存空间,每个元素占用的空间大小是相同的
同一个数组,里面的数据类型是相同的
数组类型可以是任何数据类型,包括基本数据类型和引用数据类型
数组变量属于引用数据类型
根据索引查询元素快,根据内容查询元素较慢
增加和删除元素可能涉及到大量元素的移动甚至可能需要创建新的数组完成

数组常用属性
长度属性 length 数组元素个数
索引属性 index 数组元素的编号,从0开始依次递增,编号是int类型

数组作为参数的问题
实参:实际上的参数,在调用方法时,实际传入的参数,实际传入的值
形参:形式上的参数,方法的参数列表,引导数据在方法体中如何使用

将实参传递给形参有两种方式
按值传递:相当于真假孙悟空,数据只是备份了一下,复制了一下
按引用传递:传递对于堆内存的引用

基本数据类型默认按值传递,引用数据类型默认按引用传递

####可变参数
 可变参数 实参可变的一种处理技术
 形参做了处理,实参可以变化
 在参数列表中,数组作为方法参数,将其中的[] 改为...之后 就是可变参数
 参数列表定义成可变参数后,实参可以是一个数组,也可以是单独的变量,实参是可以变化的
 在方法内部,可变参数仍然当成数组使用
 在给可变参数,使用多个单独变量赋值时,其实就是自动将变量装入数组并转化成数组的过程

 可变参数注意事项
 1数组作为方法参数可以有多个,可变参数在参数列表中只能有一个
 2当参数列表中除了可变参数还有其他参数时,可变参数必须时最后一个
 3在方法重载时,可变参数和数组作为方法参数时认为是相同参数
 4可变参数在接受多个单独的变量时,对于变量的个数没有要求 0-多个

####Arrays数组工具类


==两端如果是基本数据类型 判断的是值是否相等
==两端如果是引用数据类型 判断的是两个变量指向的是否是堆内存上同一个地址

equals无法判断基本数据类型
equals判断引用数据类型 判断的是两个变量指向的是否是堆内存上同一个地址 因为object源码里面是==,如果重写equals,判断的是值是否相等

Arrays.copyOf底层使用了 System.arraycopy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavaHenShuai

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值