基本数据类型是值传递
对象是引用传递,传递的是对象的地址
实参和形参指向同一块内存,obj.setName("tom");也会修改实参,因为指向同一块内存
但是如果obj = new Object(); obj.setName("tom"); 这种情况下,new Object();之后,形参和实参指向的内存并不是同一块,形参的改变不会影响实参
同理:
main(args){
Object obj = null;
function_a(obj);
System.out.print(obj == null); // 结果为true
}
private static void function_a(Object obj){
obj = new Object();
}












网友评论