PHP技术那点事
全部
技术
PHP
MySQL
前端
Linux
JAVA
退出
编辑文章
选择分类
PHP
MySQL
前端
Linux
Java
工具
选择专栏
设计模式
java基础
Angular学习
Java面试题
描述:
java 引用传递
封面图上传 :
+
点击上传图片
#### 引用传递 引用传递时java的精神所在,引用传递的核心:同一个堆内存可以被多个栈内存所指向。,不同栈内存可以对同一个堆内存进行修改。 ##### 引用传递案例1 ```java class Person{ private int age; public Person(int age){ this.age = age; } public void setAge(int age){ this.age = age; } public int getAge(){ return this.age; } } public class TestQuote{ public static void main(String[] arg){ Person person = new Person(25); System.out.println(person.getAge());//结果25 fun(person); System.out.println(person.getAge());//结果27 } public static void fun(Person temp){ temp.setAge(27); } } ```  ##### String引用传递案例1 如下代码:对象未被改变,输出还是bobo。这个原因时字符串时不表的,你temp=“boboyoucan”后,temp的指向就变了,变成了指向字符串“boboyoucan”的堆内存 ```java public class TestQuote{ public static void main(String[] arg){ String a = "bobo"; fun(a); System.out.println(a);//bobo } public static void fun(String temp){ temp= "boboyoucan"; } } ```  ##### String引用传递案例2 ```java class Person{ private String name; public Person(String name){ this.name = name; } public void setName(String name){ this.name = name; } public String getName(){ return this.name; } } public class TestQuote{ public static void main(String[] arg){ Person person = new Person("bobo"); fun(person); System.out.println(person.getName());//结果boboyoucan } public static void fun(Person temp){ temp.setName("boboyoucan"); } } ``` 
保存文章