Java 的引用传递与值传递

一、变量是否改了


1. 情形一  ,在主方法中向方法中传入两个此方法的局部变量String参数,此两个String 都各自在末尾加了一个字符,然后拼接两个String。最后在主函数输出S这俩tring。

       主方法中的String 不变,只是传进去一个参数而已。


2. 情形二 ,在主方法中向方法中传入两个此方法的局部变量List参数,在函数中向list中加入数据,最后在主函数输出这个List。

        如果此ArrayList 在主函数中实例化: 主函数中的ArrayList 会有值。

        如果此ArrayList 在被调用函数中实例化: 主函数中的ArrayList为null


    结论,若想更改list型的数据,可以把它传进去。 无论此方法是否有返回值。

3. 情形二 ,在主方法中向方法中传入两个成员变量参数,在函数中向list中加入数据,最后在主函数输出这个List。

        此两成员变量值改变。



二、一个类的成员变量 ArrayList 类型的,可否绕过Set方法直接赋值。

1. 可以, 只需getNameList.add() 即可

2. 如何避免,暂不知道。

三、那所谓的String 是引用传递说的是什么?
  

好乱,可以说String 就是值传递。

String 作为参数的时候,只是被Clone了一份。String中存的是栈中String 内容地址,而此地址存的才是String的引用。在被调用方法中被改,并不改变原值。

而对其他“高级变量”来说,是给了栈中对象的引用,所以自然可以修改其内容

具体的可以参考。http://www.cnblogs.com/zeng-wei/p/3494336.html





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值