【Java核心技术——Java总是采用值调用】
2014-02-24 20:53
232 查看
专业术语:
调用:方法参数的传递方式。
值调用:方法接收的是调用者提供的值。
引用调用:方法接收的是调用者提供的变量地址。
Java总是采用值调用:
基本数据类型:
reset方法没有改变value的值,属于值调用。
对象引用:
第一次输出:Jason
第二次输出:LiZhixiang
这并不能说明对象引用进行的是引用调用。
对象引用进行的是值调用,方法得到的是对象引用的拷贝,此时对象引用与它的所有拷贝引用同一个对象。
因此,对象引用进行的也是值调用。
调用:方法参数的传递方式。
值调用:方法接收的是调用者提供的值。
引用调用:方法接收的是调用者提供的变量地址。
Java总是采用值调用:
基本数据类型:
public class Main { public static void reset(int value) { value = 0; } public static void main(String[] args) { int value = 100; System.out.println(value); reset(value); System.out.println(value); } }
reset方法没有改变value的值,属于值调用。
对象引用:
class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return name; } } public class Main { public static void changeName(Person person, String name) { person.setName(name); } public static void main(String[] args) { Person jason = new Person(); jason.setName("Jason"); System.out.println(jason); changeName(jason, "LiZhixiang"); System.out.println(jason); } }
第一次输出:Jason
第二次输出:LiZhixiang
这并不能说明对象引用进行的是引用调用。
对象引用进行的是值调用,方法得到的是对象引用的拷贝,此时对象引用与它的所有拷贝引用同一个对象。
class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return name; } } public class Main { public static void swap(Person p1, Person p2) { Person tmp = p1; p1 = p2; p2 = tmp; } public static void main(String[] args) { Person p1 = new Person(); p1.setName("Alice"); Person p2 = new Person(); p2.setName("Bob"); System.out.println(p1 + " " + p2); swap(p1, p2); System.out.println(p1 + " " + p2); } }swap方法并没有任何作用。
因此,对象引用进行的也是值调用。
相关文章推荐
- Java核心技术 卷一 笔记十 参数传递设计的调用
- Java核心技术笔记—方法参数(值调用和引用调用)
- 【Java核心技术】用于自连接的递归调用示例
- Java核心技术第4章(1)
- 24.Java核心技术—JDBC
- java 核心技术 第2版 的痛苦
- java核心技术之反转排序算法
- Java 多线程编程核心技术
- Java核心技术笔记——数据结构(3)
- XML Java核心技术 读书笔记
- java核心技术 程序清单5-1 ManagerTest
- Java中的四个核心技术思想
- Java核心技术——泛型编程
- JAVA多线程编程核心技术-1
- JAVA基础【3.3】《Java核心技术1》Java的基本程序设计结构-数据类型
- java核心技术之IO流(六)DataInputStream和DataOutputStream
- Java核心技术学习笔记第五章
- Java核心技术(第8版)学习笔记_多线程
- Java核心技术(事件处理)
- Java多线程编程核心技术 阅读笔记