• Java中传地址之后重新赋值String字符串也不会发生改变,因为String具有不可变性


    1. package src.com.zhang.StringTest;
    2. public class Important {
    3. String str="test1";
    4. char[] arr={'1','2','3'};
    5. public void change(String str,char[] arr){
    6. str="test2";
    7. arr[0]='4';
    8. }
    9. public static void main(String[] args) {
    10. Important important=new Important();
    11. important.change(important.str,important.arr);
    12. System.out.println(important.str);//结果还是test1,之所以传递了str的地址值到change函数里面,也没有改变str的值,
    13. // 就是因为String类型具有不可变行,当使用str的地址重新赋值时,不改变地址,而去改变字符串的内容是行不通的
    14. System.out.println(important.arr);//结果是423,之所以arr发生了改变,就是因为arr数组并不具有不可变性
    15. }
    16. }
    package src.com.zhang.StringTest;
    
    public class Important {
        String str="test1";
        char[] arr={'1','2','3'};
        public void change(String str,char[] arr){
            str="test2";
            arr[0]='4';
        }
    
        public static void main(String[] args) {
            Important important=new Important();
            important.change(important.str,important.arr);
            System.out.println(important.str);//结果还是test1,之所以传递了str的地址值到change函数里面,也没有改变str的值,
            // 就是因为String类型具有不可变行,当使用str的地址重新赋值时,不改变地址,而去改变字符串的内容是行不通的
            System.out.println(important.arr);//结果是423,之所以arr发生了改变,就是因为arr数组并不具有不可变性
        }
    }
    
  • 相关阅读:
    Java语言的特点?
    Keras深度学习实战(34)——构建聊天机器人
    阿里云服务器修改IP地址的两种方法
    0.开发中的问题与解决方案
    对某钓鱼样本分析
    五子棋小游戏——Java
    IT行业变成了夕阳行业
    计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序
    C语言练习之消失的数字(两种解法)
    0-RTT Key Exchange
  • 原文地址:https://blog.csdn.net/qq_55278081/article/details/126917086