java基础类型是否引用传递问题

问题情况:

某些实体需要用到实体中的一些属性,进行了修改,由于之前学的是基础类型是值传递不改变,

而现在用的都是对象类型 Double Integer 等 以为也是引用传递结果,表示并不是。

测试代码,逻辑定义一个初始值 通过方法来改变对象的值  再打印,表示除了Stringbuffer 其他都没被改变

public class test1028 {
    public static void main(String[] args){
        String s = "0";
        Integer i = 0;
        Double d = 0D;
        Float f = 0F;
        StringBuffer sb = new StringBuffer();
        changeValue(s);
        changeValue(sb);
        changeValue(i);
        changeValue(d);
        changeValue(f);
        System.out.println("I am  s ="+s);
        System.out.println("I am  sb ="+sb);
        System.out.println("I am  i ="+i);
        System.out.println("I am  d ="+d);
        System.out.println("I am  f ="+f);
    }
    public static void changeValue(StringBuffer sb){
        sb.append("123");
        System.out.println("I am changeValue sb ="+sb);
    }
    public static void changeValue(String s){
        s="1";
        System.out.println("I am changeValue s ="+s);
    }
    public static void changeValue(Integer i){
        i=1;
        System.out.println("I am changeValue i ="+i);
    }
    public static void changeValue(Double d){
        d=0.1D;
        System.out.println("I am changeValue d ="+d);
    }

    public static void changeValue(Float f){
        f=0.1F;
        System.out.println("I am changeValue f ="+f);
    }


}

打印结果:

I am changeValue s =1
I am changeValue sb =123
I am changeValue i =1
I am changeValue d =0.1
I am changeValue f =0.1
I am  s =0
I am  sb =123
I am  i =0
I am  d =0.0
I am  f =0.0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值