• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗的软件工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

java中方法参数传递 值传递 和 引用传递有什么区别

在 Java 中,方法参数传递有两种类型:值传递和引用传递。

值传递

  • 值传递是指将参数的副本传递给方法。
  • 对于基本类型(如 int、double、boolean),值传递会创建参数值的副本并将其传递给方法。
  • 对副本所做的任何更改都不会影响原始值。

引用传递

  • 引用传递是指将参数的引用传递给方法。
  • 对于对象(引用类型),引用传递会将指向对象的指针传递给方法。
  • 对对象所做的任何更改都会影响原始对象。

示例:

考虑以下 Java 代码:

public class PassByValueDemo {

    public static void main(String[] args) {
        int x = 10;
        changeValue(x); // 值传递
        System.out.println(x); // 输出:10

        String s = "Hello";
        changeReference(s); // 引用传递
        System.out.println(s); // 输出:World
    }

    public static void changeValue(int x) {
        x = 20;
    }

    public static void changeReference(String s) {
        s = "World";
    }
}

在上面的示例中:

  • changeValue 方法对基本类型变量 x 进行值传递。对 x 所做的更改不会影响原始值,因此 main 方法中打印的 x 值仍然为 10。
  • changeReference 方法对引用类型变量 s 进行引用传递。对 s 所做的更改会影响原始对象,因此 main 方法中打印的 s 值变为 World。

总结:

  • 值传递传递参数的副本,对副本的更改不会影响原始值。
  • 引用传递传递参数的引用,对对象的更改会影响原始对象。

posted on 2024-07-19 09:33  周政然  阅读(43)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3