将参数传递给方法(或函数)有两种方法:
按值传递(call by value)表示方法接受的是调用者提供的值;
按引用调用(call by reference)表示方法接受的是调用者提供的变量地址。
Java程序设计语言都是采用按值传递。
ava中方法参数的使用情况:
- 一个方法不能修改一个基本数据类型的参数(即数值型或布尔型)。
- 一个方法可以改变一个对象(数组)参数的状态。
- 一个方法不能让对象参数(数组)引用一个新的对象。
在对象或者数组作为参数传递时,他们赋值的时候会在堆内存中开辟一个空间,例如p,但是当调用的时候,赋值一个副本s来进行赋值运算时,s没有开辟新的堆内存空间,而是与原来的共用一个堆内存空间,当s改变的时候,堆内存的值就会改变,在读取p的时候,p也是用到堆内存中的数据,所以会跟着改变。