关于String的不可变性的疑问

package com.learning.exer;

 public class StringTest{

       static String str = new String("good");
//     str = "hello";
//     str这个变量直接在类里面定义了,全局变量不能直接在类下面处理数据,需要在某个方法中处理
        char[] ch = {'t','e','s','t'};


        public void change(String str,char ch[]){
            str = "test ok";
//          但在这个方法里处理,这个传的引用地址值,而这个str是不可变的
            ch[0] = 'b';
        }

        public static void main(String[] args){
            StringTest ex = new StringTest();
            str = "hello";
            //这里又是可变的了,但是要加上static 因为main方法是static的
            ex.change(ex.str,ex.ch);
            System.out.println(ex.str );
            System.out.println(ex.ch);
        }


}
//什么??我似乎懂了,又似乎没有

以上,就是在java基础学习当中遇到的小小疑问,虽然还没有真正理解,但是Java学习的路途过于遥远,以至于我不能为此在这里停留过久
所以作以上记录,待此后有空闲时间,再前来思考

原文地址:https://www.cnblogs.com/alwayszzj/p/14976042.html