当前位置: 首页 > 图灵资讯 > 技术篇> Java参数传递方式问题

Java参数传递方式问题

来源:图灵教育
时间:2023-03-07 09:16:33

  众所周知,通过值传递和引用传递是Java传递方法的两种方法参数。对于按值传递和参考传递分别是什么、不变对象值为何等一系列问题,本文将予以解答。

传递Java参数的方法

  第一问:什么是按价值传递?

  参数型别为int、long等基本资料型别(八种主要资料型别),并以值复制的方法传递参数。

  代码片段:

  公共类测试{

  publicstaticvoidmain(string[]args){

  inta=5;

  fun(a);

  system.out.print(a);//输出结果是5。

  }

  privatestaticvoidfun(inta){

  a+=1;

  }

  }

  第二问:什么是参考传递?

  参数值类型是参考类型,而参数传递的过程则是复制引用。

  代码片段:

  公共类测试{

  publicstaticvoidmain(String[]args){

  Aa=newA(5);

  fun(a);

  system.out.print(a.a);//输出结果是6。

  }

  privatestaticvoidfun(Aa){

  a.a+=1;

  }

  静态classA{

  publicinta;

  publicA(inta){

  this.a=a;

  }

  }

  }

  明明是参考传递,为何不更改物件的值?

  代码片段:

  公共类测试{

  publicstaticvoidmain(String[]args){

  整数=5;

  fun(a);

  system.out.print(a);//输出结果是5。

  }

  privatestaticvoidfun(Integera){

  a+=1;

  }

  }

  由于实际上在此使用基本数据类型来封装类的自动装箱功能。

  Integera=5,经过编译的实际Integera=Integer.valueOf(5)查看Integer的源代码,并且不更改原始对象的值,只是它的引用指向另一个对象。