温故而知新————Java那些事儿(一)
程序员文章站
2022-04-11 18:59:31
...
多维数组
数组可以定义为0长度,虽然不能存数,没啥用
- 它不等于null
int[] b=new int[0];
System.out.println(b==null);//false
b=new int[10];
System.out.println(Arrays.toString(b));//10个0
在Java中,以二维数组为例,其实是“数组的数组”
这就意味着:“二维数组中可以保存多个长度不一的数组”
换句话说:二维数组中每一行的长度可以不同
多维数组同理
int[][] a= new int[10][];
for (int i = 0; i < 10; i++) {
a[i]=new int[i+1];
System.out.println(Arrays.toString(a[i]));
}
方法改变变量值
对于基本类型的变量,对变量值的更改只在方法中生效,调用方法完成后,变量值不变
public static void main(String[] args) {
int a1=10;
char a2='a';
tenTimes(a1);
toA(a2);
System.out.println(a1);//10
System.out.println(a2);//a
}
static void tenTimes(int a){
a*=10;
}
static void toA(char a){
a='A';
}
对于其他引用类型的变量,会对类进行修改
public static void main(String[] args) {
A a1=new A(10);
agePuls(a1);
System.out.println(a1.age);//11
}
static void agePuls(A a){
a.age++;
}
static class A{
public int age;
public A(int age){
this.age=age;
}
}
但是!!!所引用的对象不能被替换
把我传进方法,你可以改变我,但是不能不要我
public static void main(String[] args) {
A a1=new A(10);
A a2=new A(50);
exchange(a1,a2);
System.out.println(a1.age);//10
System.out.println(a2.age);//50
}
static void exchange(A a1,A a2){
A temp=a1;
a1=a2;
a2=temp;
}
static class A{
public int age;
public A(int age){
this.age=age;
}
}