public static void main(String[] args) {
JSONObject users = new JSONObject();
users.put("1", "张三");
users.put("2", "李四");
JSONObject usersCopy = users;
changeUsers(usersCopy);//将users json的备份传入改变方法
System.out.println(users);//打印原json
}
private static void changeUsers(JSONObject usersCopy) {
usersCopy.put("1", "王五");
}
1.这就是引用传递和值传递的区别。详细的可以自己百度下。
2。 new出来的是一个对象,等号左边的只是指向这个对象,你的usersCopy和users都是指向同一个对象而已。传到方法中,也只是传递的引用(对象的地址)。并没有把对象复制一份出来,所以修改的还是原对象。
3.至始至终只有一个对象。