tags: Java基础
Java只有按值调用,没有对象调用
很多小伙伴在学习Java之前可能会学过一点C、在学习Java的时候可能会产生一个误解。
- Java方法中的参数传递有两种方式:
- 按值传递
- [x] 按引用传递
其实Java仅仅只有按值传递!
那有的小伙伴就会疑惑了:我明明将一个对象作为方法参数,当我在方法内部中改变该对象的属性时,当调用方法完毕后,我的对象的的确确是改变了!
那为啥还说只有按值传递呢???
有点基础的同学都知道,如果我们用基本数据类型作为方法参数的话,无论我们在方法内部怎么修改这个值。当调用方法完毕后,这个变量都不会被改变。
奇就奇在为什么我说Java只有按值传递呢。
其实我们参数的类型如果是引用类型的话,那么Java传递过去的不是该引用本身,而是一个拷贝引用!
- 因为这个拷贝的引用与对象的引用指向的是同一个对象,那么当我们需要拷贝引用内部的数据的时候,对象的引用同样也会被修改到了。
记住的是:Java在传递对象引用时,会对其先作一个拷贝,传递过去的仅仅是拷贝引用。并不是对象引用的本身!
如果您觉得这篇文章帮助到了您,可以给作者一点鼓励