好吧,在Java处理对象的时候不用像C和C++,需要创建并时刻考虑回收问题,而是采用“引用”的方式。引用类似于指针。而引用的租用针对基本数据类型和普通对象略有差别,通过下面的代码说明。
public class ObjectTest {
public static void main(String args[]){
int test = 10;
int test1 = test;
test1 = 11;
System.out.println("test = " + test);
System.out.println("test1 = " + test1);
Test t0 = new Test(20);
Test t1 = t0;
System.out.println("t0.getNum() = " + t0.getNum());
System.out.println("t0.getNum() = " + t1.getNum());
t1.setNum(21);
System.out.println("t0.getNum() = " + t0.getNum());
System.out.println("t0.getNum() = " + t1.getNum());
System.out.println("Array Test:");
int[] array = new int[3];
int[] arr = array;
arr[0] = 2;
array[1] = 3;
System.out.println("\narray:");
for(int i : array){
System.out.print(i + " ");
}
System.out.println("\narr:");
for(int i : arr){
System.out.print(i + " ");
}
change(arr);
System.out.println("\narray:");
for(int i : array){
System.out.print(i + " ");
}
System.out.println("\narr:");
for(int i : arr){
System.out.print(i + " ");
}
}
private static void change(int[] test){
test[0] = -1;
}
static class Test{
int num;
Test(){}
Test(int num){
this.num = num;
}
void setNum(int num){
this.num = num;
}
int getNum(){
return this.num;
}
}
}
运行结果:
test = 10
test1 = 11
t0.getNum() = 20
t0.getNum() = 20
t0.getNum() = 21
t0.getNum() = 21
Array Test:
array:
2 3 0
arr:
2 3 0
array:
-1 3 0
arr:
-1 3 0