Blueherb In solitude, where we are least alone 王佳鑫

java 引用类型 传值

点击查看代码
   Demo user = new Demo(1);
change(user);
System.out.println("user---"+user.getAge());
 public static void change(Demo demo){
        Demo sd = new Demo(5);
        demo= sd;
    }
最后输出:user---1

JAVA 对象传递不是引用传递吗?答案是肯定的。
当 demo对象 刚进入方法的时候地址指向Demo@711, 执行完 Demo sd = new Demo(5); demo= sd;之后地址指向 Demo@718.
问题在于 Demo sd = new Demo(5); demo= sd; ,局部方法内部的赋值只是在局部方法内生效,当方法结束,demo 地址还会指向原来的地址。

点击查看代码
 public static void change(Demo demo){
        demo.setAge(5);
    }
最后输出:user---5

引用传递没有问题

posted @ 2022-07-22 17:06  阿呆学习之路  阅读(39)  评论(0编辑  收藏  举报