java 传递 函数_java 对象传入到函数原对象不改变 值传递 引用传递

背景: 做项目的时候,将一个空对象的引用传入到方法中,期待方法里面创建一个新的对象给这个引用,后面就可以拿着这个对象用了。

可结果就是,定义在外面的对象引用并没有拿到这个引用

demo.java

public class Entry

{

public static void main(String[] args)

{

List re = new ArrayList<>();

// initial 一个对象,期望这个对象经过函数能引用到新的对象

TestObject test=new TestObject("1","2");

addObject(test);

System.out.println(test.hashCode());

}

// 希望这个函数能将test引用到新的对象

public static void addObject(TestObject object)

{

System.out.println(object.hashCode());

object = new TestObject("2", "4");

System.out.println(object.hashCode());

object.setId("100");

}

}

执行结果如下:

1259475182

1300109446

1259475182

可以看到进入到函数里面之后,test这个引用变成了局部变量,不会影响到全局变量test,一旦出了函数还是test,并没有引用到新的对象。

进入到函数之后test引用到新对象没问题,出去之后test还是老得对象,但是java不是传递对象引用关系么;实际都是值传递,对象看着像

引用传递,实际传的是对象的地址,像c++一样,对地址修改影响到原来值;如果对传入函数的对象引用参数赋值,那么也是把一个对象的引用

赋值给了一个地址变量,在java中,变量传入到函数参数是变量的一份拷贝,并不会影响到原来的值的。

经常使用的是把对象传入到一个function,对这个对象内容修改,修改引用这个基本没有用过,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值