美文网首页
Java核心技术(卷I) 5、Java值传递

Java核心技术(卷I) 5、Java值传递

作者: kaiker | 来源:发表于2021-02-16 15:34 被阅读0次

1、按值调用和按引用调用

  • 按值调用:方法接收的是调用者提供的值
  • 按引用调用:方法接收调用者提供的变量地址
  • 方法可以修改按引用传递的变量的值,不能修改按值传递的变量的值

2、Java值传递

  • Java采用值传递,也就是方法得到的是所有参数值的一个副本。方法不能修改传递给它的任何参数变量内容。
public static void triple(double x){
  x = 3 * x;
}
double percent = 10;
triple(percent);
修改数值参数
  • 对象作为引用参数可能被修改
public static void triple(Employee x){
  x.raiseSalary(200); // 拷贝了一个,但是引用的对象还是一样的
}
harry = new Employee();
triple(harry);
修改对象参数

一个Java swap的例子,证明其值传递的特点

public static void swap(Employee x, Employee y)
   {
      Employee temp = x;
      x = y;
      y = temp;
      System.out.println("End of method: x=" + x.getName());
      System.out.println("End of method: y=" + y.getName());
   }
  • 最终副本交换了引用的对象,但原始传递的参数没有变化


    Java swap对象时的引用情况

Java值传递的能与不能

  • 方法不能修改基本数据类型的参数
  • 方法可以改变对象参数的状态 (状态:https://www.jianshu.com/p/36ba065d1624
  • 方法不能让一个对象参数引用一个新的对象

https://www.cnblogs.com/wugongzi/p/11297638.html 值传递

相关文章

  • 双11Java程序员书单推荐

    Java 《Java核心技术卷I》 《Java核心技术卷II》 《Java编程思想》 《Java并发编程实战》 《...

  • Java核心技术(卷I) 5、Java值传递

    1、按值调用和按引用调用 按值调用:方法接收的是调用者提供的值 按引用调用:方法接收调用者提供的变量地址 方法可以...

  • 2021书单

    2021-01《活着》《如何阅读一本书》2021-11《Java核心技术卷I》《Java核心技术卷II》2021-...

  • Java核心知识

    Java核心语法 作者:springremember 书籍:《Java核心技术卷一》《Java核心技术卷二》 ja...

  • 记录一些书籍

    JAVA 基础 《Java核心技术·卷1:基础知识》《Java核心技术 卷2:高级特性》《Java8 实战》 并发...

  • 推书:Java核心技术 卷1 基础知识 原书第10版

    推书:Java核心技术 卷1 基础知识 原书第10版 《Java核心技术卷I》虽然该书很厚,有700多页,但知识体...

  • Java SE基础部分

    Java核心语法 书籍:《Java核心技术卷一》《Java核心技术卷二》 java包结构:核心包,Java1一同出...

  • java修炼书籍

    1,《java核心技术(卷1)》 2,《java核心技术(卷1)》 3, 《java学习指南(第四版)》 4,《e...

  • 2018年最新Android开发学习知识点和路径总结

    程序设计 java 基本语法(如继承、异常、引用、泛型等) Java核心技术 卷I(适合入门) 进阶:Effect...

  • Reading List

    写于2019年5月14日 编程 Java 在读 基础 Java编程思想 Java核心技术 卷II 高级特性 数据结...

网友评论

      本文标题:Java核心技术(卷I) 5、Java值传递

      本文链接:https://www.haomeiwen.com/subject/lfivxltx.html