java 方法内修改外部变量,值不变

问题:

优化代码的时候遇到,无法修改变量的值。

场景:

现有两个java 方法,方法2包含在方法1中,方法1中的变量作为参数传入方法2,在方法2内部对这个传入的参数的值进行了修改。

    public static void main(String[] args) {
        String ts = "123";
        changeTest(ts); // 基础数据类型,无法修改ts的值
        System.out.println(ts);
    }
    private static void changeTest(String ts){
        System.out.println(ts);
        ts = "456"; // 修改对外部方法无效
    }

无法这样修改的数据类型包含: 8大基本类型 和 String

结论:

1.如果传入的是基本类型,该变量在方法1中的值不变,需要return 返回值;
2.如果传入的是引用类型(对象),不修改该变量原指针时,该变量在方法1中的值将改变。
3.不管传入方法2的参数是什么类型,方法2内部都能够获取到方法1中该参数的值。

发布了93 篇原创文章 · 获赞 20 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/leinminna/article/details/104331986