提到Java的引用很多人会觉得和C中的地址引用相似,可是之间还是有差别的
class Node {
int name;
}
public void test1(Node n1,Node n2) {
n2 = n1;
}
public void test2(Node n) {
n = new Node();
n.name = 1;
}
public void test3(Node n) {
n.name = 1;
}
main(String[] args) {
//此种情况会报null exception
Node n1 = new Node();
n1.name = 1;
Node n2 = null;
test1(n1,n2);
System.out.println(n2.name);
//此种情况也会报null exception
Node n3 = null;
test2(n3);
System.out.println(n3.name);
//此种情况正确
Node n4 = new Node();
test4(n4);
System.out.println(n4.name);
}
由此可知,java中的引用和C中的还是有区别的