add by zhj: 文章写的很好,其实只要默认参数在函数中只读不写,那默认值就不会被修改,可变类型做默认参数就不会有问题 方法二中,当result is None时,修改result的指向,不再指向默认参数对象,而是赋值一个新的对象.如下,可以看到,result的id变化了 In [4]: def f(p=None, q=[]): ...: print id(p), id(q) ...: if p is None: ...: p = [] ...: print id(p) ...: In [
public class Dog { public void Age(int age) {//副本新建的age age++;//对副本修改 System.out.println(age); } public void arrDemo(int[] arr) { arr[2] = 100;//对堆里的数据修改 for(int i =0;i<arr.length;i++) { System.out.println(arr[i]+" "); } } public static void