Java传递

来源:互联网 发布:淘宝代练那家店好 编辑:程序博客网 时间:2024/05/19 03:22

  Java的传递采用的是值传递、没有引用传递。

 

在基本类型为参数的传递中,只是传递的值改变,本身并未改变

public class Test {
  public static void main(String[] args) {
    int a = 1;
   changeBasicType(a);
 System.out.println("result:"+a);
 
}
   private static void changeBasicType(int a){
     a++;
   }
  
  
}

结果:

result:1

在数组的传递中,改变

public class Test {
  public static void main(String[] args) {
  int a [] ={1,3};
  changeArray(a);
  System.out.println("result:"+a[0]);
 
}
   private static void changeArray(int a []){
    a[0] = 6;
   }
   
}

结果:

result:6

 (在数组引用的赋值,如int a[],b[]; b={1,2}; a=b; a[0] =3;其中b[0]=3,他们引用改变对象)

在传递的值是引用传递,改变的只是值,而不会改变对象的hashcode,也就是不改变对象的引用

public class Test {
  public static void main(String[] args) {
  A aObject = new A();
  System.out.println(aObject.hashCode());
  changeObject(aObject);
  System.out.println(aObject.a);
  System.out.println(aObject.hashCode());
}
   private static void changeArray(int a []){
    a[0] = 6;
   }
  
   private static void changeObject(A a){
  a.a =2;
  A b = new A();
  a = b;
   }
}
 class A{
  int a=1;
 }

 

结果:

25860399
2
25860399

0 0
原创粉丝点击