1、关于值传递
值传递:是指在调用函数时,将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,就不会影响到实际参数
public class Test01 {
public static void main(String[] args) {
int number = 10; new Test01().change(number); System.out.println(number); } public void change(int a){
a+=1; } }

2、关于引用传递
引用传递:是指在调用函数时,将实际参数的地址传递到函数中,那么在函数中对参数进行修改,将会影响到实际参数
public class Test01 {
public static void main(String[] args) {
User user = new User("小明", 12); new Test01().change(user); System.out.println(user); } public void change(User a){
a.setName("小张"); } }

注意点,引用类型中的String的值是放在常量池中,我们改变副本的值不会影响到原来的值。

例如在change放发中改变了副本的值,但是原来的str字符串不会改变。
public class Test01 {
public static void main(String[] args) {
String str = "hello"; new Test01().change(str); System.out.println(str); } public void change(String a){
a="yes"; } }

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207261.html原文链接:https://javaforall.net
