192.168.1.57_20200909-湛良通

问题

已解决

public class ClassTest{
     String str = new String("hello");
     char[] ch = {'a','b','c'};
     public void fun(String str, char ch[]){
     str="world";
     ch[0]='d';
 }
 public static void main(String[] args) {
     ClassTest test1 = new ClassTest();
     test1.fun(test1.str,test1.ch);
     System.out.print(test1.str + " and ");
     System.out.print(test1.ch);
     }
 }

输出结果

hello and dbc

先成员变量str的地址复制给 fun方法栈帧中的 str , 在 fun方法栈帧中的 str 又指向了 world ,

但方法中的 str 与 成员变量 str 无关,所以fun执行完后 成员变量的 str 指向 hello 不变

先把成员变量 ch 的地址复制给 fun方法栈帧中的 ch , 在 fun方法栈帧中的 ch 根据地址 找到数组

并将数组中 的 ch[ 0 ] 的值改了,而他们指向的是同一个数组 , 所以成员变量 ch 指向的数组变了

吐槽

今天上map集合,关于map集合如何存储数据 ,今天终于是大致了解了。