引用数据类型只能是null或者是一个地址值
比如:
public int[] copy(int[] arr){
return null;
}
这个时候的是引用数据类型,返回值是null,而不是其他的。
基本数据类型的赋值有如下规律:
int m = 5; int n = m; System.out.println(m + n); n = 20; System.out.println(m + n); //比如下面定义一个Order类 Order o1 = new Order(); o1.orderId() = 1001; Order o2 = new Order(); System.out.println(o1.orderId() + o2.orderId();); o2.orderId() = 1002; System.out.println(o1.orderId() + o2.orderId(););
这时候基本数据类型m和n的输出由上到下分别是:
55
520
发现改变n的时候,m并没有发生改变
但是下面的输出却是:
10011001
10021002
发现两个的值都发生了改变
为什么?
因为引用数据类型是传递地址的!赋值的是数据所保存的地址!!
因此当一个改变,全部改变
String 是引用数据类型,不是基本数据类型!!!
看下面一道题:
public class ValueTransferTest{ public static void main(String[] args){ String s1 = "Hello"; ValueTransferTest test = new ValueTransferTest(); test.change(s1); System.out.println(s1); } public void change(String s){ s = "hi~"; } }
这时候输出的是什么?
答案:
Hello
因为:test.change(s1); 这是将s1的地址值赋值给了s,所以输出的任然是s1的值
而下面:s = "hi~"; 是 s 重新又创建的一个对象
posted on
浙公网安备 33010602011771号