https://bbs.csdn.net/topics/392493634
第一段代码
public static void main(String[] args) {
String str = "aaa";
Map<String, String> map = new HashMap<>();
change(str,map);
System.out.println(str);
System.out.println(map);
}
static void change(String str,Map<String, String> map) {
str = "bbb";
map = null;
//map.put("name", "China");
}
main方法执行结果为:
aaa
{}
str依旧是aaa? str作为引用类型, 此时为何没有指向bbb
map依旧是{}?同样map为何没有变成null
第二段代码
public static void main(String[] args) {
String str = "aaa";
Map<String, String> map = new HashMap<>();
change(str,map);
System.out.println(str);
System.out.println(map);
}
static void change(String str,Map<String, String> map) {
str = "bbb";
//map = null;
map.put("name", "China");
}
main方法执行结果为:
aaa
{name=China}
map变成了{name=China}而不是之前的{}? 为什么这个时候又可以改变map
第一段代码
public static void main(String[] args) {
String str = "aaa";
Map<String, String> map = new HashMap<>();
change(str,map);
System.out.println(str);
System.out.println(map);
}
static void change(String str,Map<String, String> map) {
str = "bbb";
map = null;
//map.put("name", "China");
}
main方法执行结果为:
aaa
{}
str依旧是aaa? str作为引用类型, 此时为何没有指向bbb
map依旧是{}?同样map为何没有变成null
第二段代码
public static void main(String[] args) {
String str = "aaa";
Map<String, String> map = new HashMap<>();
change(str,map);
System.out.println(str);
System.out.println(map);
}
static void change(String str,Map<String, String> map) {
str = "bbb";
//map = null;
map.put("name", "China");
}
main方法执行结果为:
aaa
{name=China}
map变成了{name=China}而不是之前的{}? 为什么这个时候又可以改变map