1 基本类型
测试代码如下:
1 public static void main(String[] args) throws Exception { 2 int age = 18; 3 changeAge(age); 4 System.out.println(age);// 18 5 } 6 7 public static void changeAge(int age) { 8 age = 99; 9 }
基本类型的参数传递的是值,在方法中被修改不影响原参数。
2 String类型
测试代码如下:
1 public static void main(String[] args) throws Exception { 2 String name = "abc"; 3 changeName(name); 4 System.out.println(name);// abc 5 } 6 7 public static void changeName(String name) { 8 name = "123"; 9 }
String类型的参数传递的是值,在方法中被修改不影响原参数。
3 引用类型
测试代码如下:
1 public static void main(String[] args) throws Exception { 2 Person person = new Person(); 3 person.id = 5; 4 changePerson(person); 5 System.out.println(person.id);// 8 6 } 7 8 public static void changePerson(Person person) { 9 person.id = 8; 10 }
引用类型的参数传递的是引用地址值,在方法中被修改会影响原参数。
但是,如果在方法中创建了新的对象,然后将新对象的引用地址赋值给了参数,那么原参数就不会收到影响了。