阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第1章:类与对象:课时6:对象引用分析
程序员文章站
2024-02-26 18:49:34
...
引用传递分析
类本身属于引用数据类型,既然是引用数据类型,那么就牵扯到内存的引用传递,所谓的引用传递的本质:同一块堆内存空间可以被不同的栈内存所指向,也可以更换指向。
范例:定义一个引用传递的分析程序
public class JavaDemo {
public static void main(String args[]) {
Person per1 = new Person() ; //声明并实例化对象
per1.name = "张三";
per1.age = 18 ;
Person per2 = per1 ; //引用传送
per2.age = 80 ;
per1.tell(); //进行方法的调用
}
}
这个时候的引用传递是直接在主方法之中定义的,也可以通过方法实现引用传递处理
范例:利用方法实现引用传递处理
public class JavaDemo {
public static void main(String args[]) {
Person per = new Person() ; //声明并实例化对象
per.name = "张三";
per.age = 18 ;
change(per) ; //等价于:Person temp = per ;
per.tell(); //进行方法的调用
}
public static void change(Person temp){
tmpe.age = 80;
}
}
与之前的差别最大的地方在于,此时的程序是将Person类的实例化对象(内存地址、数值)传递到了change()方法之中,由于传递的是一个Person类型,那么change()方法接收的也是Person类型。
引用传递可以发生在方法上,这个时候一定要观察方法的参数类型,同时也要观察方法的执行过程。
上一篇: Linux之ARM(MX6U)裸机按键输入实验(GPIO的输出与输入)
下一篇: 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第1章:类与对象:课时5:对象内存分析
推荐阅读
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第20章:接口的定义与使用:课时91:代理设计模式
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时29:数组与方法
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时26:数组引用传递分析
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第1章:类与对象:课时5:对象内存分析
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时34:对象数组
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第1章:类与对象:课时6:对象引用分析
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第30章:链表的定义与使用:课时139:根据索引取得数据
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第27章:异常的捕获及处理:课时119:异常处理流程
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第23章:包的定义及使用:课时104:生成jar文件
-
阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第22章:反射应用案例:课时101:反射实例化对象