关于函数参数的引用和复制
有如下程序,对于部分参数在调用函数时被复制(如:String, arry, Object(可能Object不算));有些被引用(如:HashMap)
想问下,那些类型的变量调用函数时被复制,哪些被引用?
多谢先!
--------------
import java.util.HashMap;
public class Test1 {
public static void main(String[] args) {
String s="s1";
Object o = "o1";
int[] a = new int[]{1,2,3};
HashMap h = new HashMap();
h.put("h1", "v");
f(s, o, a, h);
System.out.println("string=" + s);
System.out.println("object=" + o);
System.out.println("array=" + a.length);
System.out.println("hashmap=" + h.size());
}
static void f(String s, Object o, int[] a, HashMap h){
s +="__";
o = "222";
a = new int[]{1,2,3,4};
h.put("2", "v2");
}
}
-----------结果:
string=s1
object=o1
array=3
hashmap=2