今天在学习java成员方法传参时遇到这样一个问题。

java中通过swap函数交换的数字,交换前后结果没有发生改变。

java写swap函数 java的swap函数_java

java写swap函数 java的swap函数_Java_02

java写swap函数 java的swap函数_基本类型_03

其原因是java中没有指针,java中传入方法的参数,如果是基本类型,会在调用方法的时候,对参数的值进行复制,方法中的参数变量,不是我们传入的变量本身。

解决方法:可以对swap函数进行修改。

java写swap函数 java的swap函数_java写swap函数_04

 

java写swap函数 java的swap函数_Java_05

 

java写swap函数 java的swap函数_java写swap函数_06

 

 

 

 

 我又发现当传入方法的参数,如果是引用类型,那么传入的依然是该对象的引用(类似于c语言的指针)。

java写swap函数 java的swap函数_java_07

java写swap函数 java的swap函数_Java_08

java写swap函数 java的swap函数_Java_09

java写swap函数 java的swap函数_java写swap函数_10

总结:在Java中,对类有两类划分,一类为基本类型,即我们见到的int,char,byte….等等这些小写开头的基本数据类型,还有一类在Java类库中都是以class关键字定义的类型,该类型为引用类型,即只有这些以class定义的类型才能够真正实现引用传递,而基本类型传递的只是参数值而已。