美文网首页
5.Java的值传递和引用传递问题

5.Java的值传递和引用传递问题

作者: gadfly_only | 来源:发表于2016-08-03 16:53 被阅读27次

Java的值传递和引用传递问题

String的对象是不可修改的,如果真正要达到改变字符串的效果,我们需要使用StringBuilder来替代String。

要想不改变原来的对象可以继承Cloneable接口,实现其clone()

public class demo {

    public static void main(String[] args) {
        String x = new String("way");
        changeString(x);
        System.out.println(x);

        StringBuilder xx = new StringBuilder("ss");
        changeStringBuilder(xx);
        System.out.println(xx.toString());

        Dest dest = new Dest();
        dest.kk = 99;
        changeObject1(dest);
        System.out.println(dest.kk);
        changeObject2(dest);
        System.out.println(dest.kk);
    }

    public static void changeString(String x) {
        x = "even";
    }

    public static void changeStringBuilder(StringBuilder x) {
        x.append("even");
    }

    public static void changeObject1(Dest x) {
        Dest yy = null;
        try {
            yy = (Dest) x.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        yy.kk = 100;
    }
    public static void changeObject2(Dest x) {
        x.kk = 101;
    }
}

class Dest implements Cloneable {
    public Dest() {
    }

    public int kk = 0;

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

相关文章

  • 5.Java的值传递和引用传递问题

    Java的值传递和引用传递问题 String的对象是不可修改的,如果真正要达到改变字符串的效果,我们需要使用Str...

  • Day12-Java

    值传递和引用传递 值传递是值的拷贝, 引用传递是引用的拷贝 String 类型是引用类型, new String ...

  • Java中的参数传递

    为了便于理解,会将参数传递分为按值传递和按引用传递。按值传递是传递的值的拷贝,按引用传递传递的是引用的地址值,所以...

  • Java所有参数-对象引用及基本类型值--都是值传递

    前言 当前主要存在两种传递方式,值传递和引用传递,先简单介绍值传递和引用传递值传递(pass by value)是...

  • Dart是值传递还是引用传递

    结论:Dart是值传递。 我们先看值传递和引用传递的定义: 值传递和引用传递,属于函数调用时参数的求值策略(Eva...

  • java只存在值传递

    Java之中的值传递问题 其他的程序语言里面都存在值传递和引用传递两种传递方式 值传递就是把值拷贝一次传递到调用的...

  • JS中容易出错的点

    基本类型和引用类型的赋值问题 上例很好地证明了:基本类型值按值传递,引用类型值按引用传递 同名变量和方法覆盖问题 ...

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • Java面试题疑难点

    1. java值传递和引用传递 String为什么是值传递而不是引用传递 答:String是final的

  • 关于block中__strong与__weak的一点思考

    值传递&&引用传递 首先从函数谈起,函数参数传递的类型分为值传递和引用传递两种,值传递的过程指的是在实参给形参赋值...

网友评论

      本文标题:5.Java的值传递和引用传递问题

      本文链接:https://www.haomeiwen.com/subject/iiigjttx.html