java参数传递(值传递和引用传递)

1、基本数据类型(boolean,byte,short,int,long,float,double)作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变

public class Test1 {
       public static void main(String[] args) {
        int n = 3;
        System.out.println("Before change, n = " + n);
        changeData(n);
        System.out.println("After changeData(n), n = " + n);
    }
      
       public static void changeData(int nn) {
        n = 10;
    }
}



 输出结果:

Before change, n = 3

2、对象作为参数传递,按引用传递
 

public class Test2 {
       public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("Hello ");
        System.out.println("Before change, sb = " + sb);
        changeData(sb);
        System.out.println("After changeData(n), sb = " + sb);
    }
      
       public static void changeData(StringBuffer strBuf) {
        strBuf.append("World!");
    }
}

 

 

先看输出结果:

Before change, sb = Hello

After changeData(n), sb = Hello World!

从结果来看,sb的值被改变了,那么是不是可以说:对象作为参数传递时,是把对象的引用传递过去,如果引用在方法内被改变了,那么原对象也跟着改变。











 

 

 

 

 

你可能感兴趣的:(java基础)