曾经对java中传值还是传引用的问题十分困惑,而且也被问到过许多次,无论是面试,还是平时我们平时的讨论中。

在stackoverflow上面浏览时,无意中发现了跟这个问题有关的论题,于是深入地查看了,感觉获益匪浅,于是结合自己过去的经验,写了这篇博客跟大家分享。

以前我觉得是这样的,java中的基本数据类型和String是传值的,而其它的类类型的数据则是传引用的。不过现在我觉得不是这样的。

*******************************************************************************

我觉得人们对于传值还是传引用的困惑源于这样一个事实:不同的人对于“引用”的定义理解不同。具有C++背景的人认为“引用”跟C++里面的引用是同一个概念,而具体C语言背景的人则认为“引用”具有“指针”的含义,等等。java中传值还是传引用取决于“引用”的含义。

 

Java中的传值是这样的:

 1 public void method1(int i){
 2     i++;
 3     System.out.println(i);  //5
 4 }
 5 public void method2(String s){
 6     s+="a";
 7     System.out.println(s);  //aa
 8 }
 9 
10 int i=4;
11 method1(i);
12 System.out.println(i);  //4
13 
14 String a="a";
15 method2(a);
16 System.out.println(s);//a
View Code

相关文章:

  • 2021-08-15
  • 2021-06-29
  • 2021-07-29
  • 2021-09-05
  • 2021-09-04
  • 2021-06-15
  • 2021-10-16
猜你喜欢
  • 2022-01-18
  • 2022-12-23
  • 2021-10-17
  • 2021-06-15
  • 2022-01-02
相关资源
相似解决方案