Java 第三周总结

一维数组
一维数组实质上是相同类型变量的列表。要创建一个数组必须首先定义数组变量所需的类型。通用的一维数组的声明格式是:type var-name[ ];
数组中的元素必须类型相同,不能存储不同类型的元素,除非使用Object[]
可以通过数组的下标操作数组中所存储的元素,注意下标从0开始,例如arr[0]+=12;修改元素的值 System.out.println(arr[0]);获取元素
使用数组之前,必须先定义后使用,定义的方式: int[] arr或者int arr[]
声明数组变量后,必须进行初始化操作,也就是定义数组的长度 arr=new int[5],这里表示开启可以存放5个int类型数据的数组,这些元素时连续存放的
简单类型的数组初始化长度后,每个元素都有默认值。
在这里插入图片描述

创建数组后,每个元素都有一个默认值,如果针对的是引用类型,则默认值为null;如果是简单类型中byte short int long float double,则默认值为0,如果char类型默认值为\0,如果boolean类型,则默认false

在Java中允许直接赋值初始
int[] arr={1,2,3,4,5,6,7}; 注意在于int[]中不能写具体的对应长度
也可以写成new int[]{1,2,3,4,5,6,7},但是int[]中不能有长度值

基本输入输出操作
System.out.println(“需要输出的内容”); 在显示器上打印输出指定内容,参数可以是任意类型的数据,但是事实上输出时是将数据自动转换为字符串进行输出
println表示输出完毕自动换行,下次输出在新行开始位置重新进行输出
print只是进行输出,输出完毕没有换行,下次输出后在本次输出的末尾继续输出
printf( String format, Object… args) 使用指定的格式字符串和参数将格式化的字符串写入该输出流的方便方法。
%d表示整数输出.例如System.out.printf(“score[%d] = %d\n”, i, score[i]); 将i, score[i]当做参数,输出时按照顺序替代格式字串中的%d

Scanner sc = new Scanner(System.in);
int i = sc.nextInt(); 如果没有输入整数,则会等待;如果输入的数据不能转换为整数则会有报错;如果输入多个整数以空格分开,则可以两次输入读取到。另有方法nextBigDecimal() /nextBigInteger() /nextBoolean() /nextByte() /nextDouble() /nextFloat() /nextLong() /nextShort()可以获取不同类型的用户输入数据,用于实现从键盘读取输入内容,并且自动进行数据类型转换,如果转换失败则报异常java.util.InputMismatchException

(图片2)

next():String读取用户输入的数据,如果遇到空格则中断,例如用户输入sadfs af sdmb,但是scanner读取的只有第一个空格之前的字串

nextLine():String可以读取用户的键盘录入数据,直到使用回车换行为值

数组的操作
length为数组对象的属性成员,可以直接使用”数组名称.length”获取数组长度。但是由于序号是从0开始,所以最大下标值为length-1,否则ArrayIndexOutOfBoundsException表示数组下标越界

(图片3)

数组的长度一旦定义后,则不能改变。如果需要改变则需要重新创建数组

编码需求:需要定义一个可以改变长度的数组,当输入0时表示输入结束,到底用户需要输入多少个数据,未知----需要自行编程实现可变长的数组,不允许不输入,也就是至少一个数据

图片4)
使用System类别所提供的arraycopy()方法
int[] arr1 = {1, 2, 3, 4, 5}; int[] arr2 = new int[5];
System.arraycopy(arr1, 0, arr2, 0, arr1.length);参数含义为从arr1的第0个位置开始拷贝,拷贝到arr2的第0个位置开始,总共拷贝arr1.length个元素
Java.lang.System类的静态方法arraycopy(Object源数组,int起始下标,Object目标数组,int目标起始下标,int长度) 如果源数组数目超过目标数组边界会抛出

IndexOutOfBoundsException异常! (图片5)

引用类型数据的存放(图片6 )
图片7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值