结论:请参考https://www.cnblogs.com/binyue/p/3862276.html
基本数据类型传值,对形参的修改不会影响实参
引用类型传引用,形参和实参指向同一个内存地址(同一个对象),所以对参数的修改会影响到实际的对象
String, Integer, Double等immutable的类型特殊处理,可以理解为传值,最后的操作不会修改实参对象
如下:
public static void main (String[] args){
List<String> a = null;
test(a);
System.out.println(a.size()); //运行报NullPointerException异常
}
public static void test(List<String> a){
a=new ArrayList<String>();
a.add("abc");
}
//
null既不是对象也不是一种类型,它仅是一种特殊的值,你可以将其赋予任何引用类型,你也可以将null转化成任何类型,因此此处属于值传递。