java没有引用传递!

不要再被java是传值还是传引用而混淆视听了,remember!java全部都是值传递!


基本数据类型  int char  ,和 String 都是传递的copy值。 例如int a=521  那么传值就是521这个数值;


对象类型 也叫引用类型(我呸 去他妹的“引用”,把这个概念从脑海里删除。),也是传值, 注意 这里说的传值 不像int a=  521的值,而是被分配内存物理地址的值。


解释一下,基本类型传值被处理后,不会改变原有的数据,对象类型传过去地址值之后,会随着处理类对该地址的内存块数据的处理,该对象有可能会被更改。但是该内存块的物理地址是 海枯石烂的时候都不会改变的。


下面这个例子能说出运行结果 你就醍醐灌顶了:


public class AAtest2 {
public int i=10;
}


public class AAtest {


public static void main(String a[]){

AAtest aatest = new AAtest();
aatest.amethod();


}

public void amethod(){
   int i = 99;
   AAtest2 v = new AAtest2();
   v.i=30;
   another(v,i);
   System.out.println(v.i);
 }
public void another(AAtest2 v, int i){
   i=0;
   v.i = 20;
   AAtest2 vh = new AAtest2();
   v =  vh;
   System.out.println(v.i+ " "+i);
 }


}


答案是 : 10   0     20

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值