2.数组
上节回顾:
小数默认为Double,除非作强制转换。
Char类型分配两个字节
输入:
导入Java.util.Scanner
Scanner input = newScanner(System.in)
int a = input.nextInt()
2.1数组
回顾c语言中的数组定义:
int a[10];(定义)
int a[] = {1,2,3};(直接初始化)
int a[3][5];(二维数组)
Java中数组不能这样定义,因为Java定义数组是一种引用。
int a[]定义数组命时不允许象c语言直接给数据,需要new一个对象
int[] a
a = new int[10]
然后再:a[0] = 1;a[1] = 2……
float b[] = new float[10]
Java中也可以直接对数组初始化:
int []a = {1,2,3}
int a[] = {1,2,3}
Java中的二维数组
int b[][];
b = new int[3][4];
int b[][] = new int[3][4];
int a[][] = new int[3][];
a[0] = new int[3];
a[1] = new int[5];
a[2] = new int[8];
数组不是规整的矩形,一共16个元素,这是在c语言中做不到的。
或者:
int a[][] = {{1,2,3},{3,4,5},{5,6,7,7}}
都是可以的
2.2数组的引用:
java的数组名采用了引用,本质上是传递地址,只是在java这样的高级语言中中我们要尽量的避免地址。
扩展:内存4区
代码区,栈区,堆区,数据区。
代码区存放的是代码
数据区存放的是一些常量等数据
栈区是当程序运行时,操作系统给程序分配的内存,如函数入栈时,汇编指令为push,当函数运行完以后会使用pop释放占空间。
堆区是代码中手动分配的空间,如new,mollca出来的空间。
2.3复制数组
方法:arraycopy
库:java.util.Arrays;
参数:arraycpy(sourceArray, int index1, copyArray, int index2, int lenth)
作用:可以将数组sourceArray从索引index1开始的lenth个元素复制到copyArray中。(下标是index1到index + lenth-1)
2.4访问数组
for (i = 0; i < len(arr); i++)
{
System.out.println(arr[i]);
}
for (int i : arr){
System.out.println(i);
}
类似于python中的i in arr语句