018Java面试003值传递

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 }

引用类型的参数传递的是引用地址值,在方法中被修改会影响原参数。

但是,如果在方法中创建了新的对象,然后将新对象的引用地址赋值给了参数,那么原参数就不会收到影响了。

 

上一篇:js深入基础--执行上下文栈003


下一篇:Web前端学习第一天——————HTML篇.003知识补充