一组连续的内存空间,可以存储多个相同数据的值
是一组内存空间连续,数据类型相同的,长度固定的变量的集合
他的好处就是对批量存储数据中使用变量的一种简化
内存空间连续
数据类型相同
长度固定(不能通过代码动态改变数组)
已经知道数组元素
数据类型[] 变量名 = {值1,值2,值3,...};
数据类型[] 变量名 = new 数据类型[]{值1,值2,值3,...};
数据类型 数组名[];
数组名 = new 数据类型[长度];
数据类型[] 变量名 = new 数据类型[长度];
注: 在求数组的长度的时候,我们一般使用数组名.length的方法
数组的下角标也被称为索引 例如下图中的 a[0] 说的就是1 a[1] 说的就是2 等等
所以4 就用a[3]来表示 所以说数组的索引范围就是 0~ 数组名.length - 1
public class Demo3 {
public static void main(String[] args) {
int[] a = new int[]{1,2,3,4};
for (int i=0; i
当我们把整个数组的所有值全部输出我们就叫数组的遍历
当我们不往数组当中赋值时,数组也会有默认值
byte 0
short 0
int 0
long 0
double 0.0
float 0.0
char 一个英文空格
boolean false
String null
int[] a = {1,2,3,4,5};
int[] newA = new int[a.length*2];
for (int i=0; i
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
int[] newA = new int[a.length*2];
//a是老数组的名字
//0是老数组a的下角标
//newA是指新的数组(需要提前创建)
//2是指新数组的下角标
//a.length是指从 数组a 你定义的 下角标 开始往下复制,一直复制a.length个 如果第二个参数
//不是0一定会造成长度溢出 会报错 java.lang.ArrayIndexOutOfBoundsException
System.arraycopy(a, 0, newA, 2, a.length);
for (int i=0; i
int[] a = {1,2,3,4,5};
//调用java.util.Arrays方法
//需要提前定义一个数组进行接收
//第一个为老数组的名字
//第二个为新数组的长度
int[] newA = Arrays.copyOf(a, a.length*2);
for (int i=0; i
基本数据类型,方法里一般使用return
因为一开始在main定义了一个变量,假如说定义的变量叫num,num传入方法中之后,栈里又生成了一个新的变量,名字也叫num,然后是这个新的num进行方法里的运算,
如果没有return的话
在main方法里边输出num依旧是原来的旧num,只有新的那个num值才发生改变
如果有return的话
方法里边写return num ,因为得把num返回上去,就相当于在栈里,前两个num的上边,在栈里再定义一个新的变量,名字也叫num,值就是第二个num在方法里进行运算之后的那个值
也就是说,这个num是复制第二个num的值,然后返回上去,进行输出,输出的是这个num
引用数据类型
在栈里边放的是地址,他和基本数据类型不一样,基本数据类型放值,如果说放的是地址的话,因为地址是一样的,复制了,也是一样的地址,方法里边,改的是堆里边的东西,但是地址名没改,
所以输出的时候,有没有void一样
数据类型[][] 数组名;
数组名 = new 数据类型[高维长度][低维长度];
数据类型[][] 数组名 = new 数据类型[高维长度][低维长度];
数据类型[][] 数组名 = new 数据类型[高维长度][]; //不规则数组,自行new低维数组
数据类型[][] 数组名 = {{值1,值2,值3},{值1,值2},{值1,值2,值3,值4},...};
public class Demo3 {
public static void main(String[] args) {
int[][] arry = {{1,2,3},{4,5},{1,2,3,4}};
for (int i=0; i < arry.length; i++) {
for (int j=0; j