java中的什么是值传递,什么是引用传递

  1. 值传递(Pass by Value):值传递意味着在方法调用时,实际参数的值被传递给方法中的形式参数,即在方法内部修改形参的值不会影响实参的值。Java中的基本数据类型(如int、float、double等)就是值传递的典型例子。

    java 复制代码
    public class Main {
        public static void main(String[] args) {
            int x = 10;
            modifyValue(x);
            System.out.println("Value after method call: " + x);
        }
    
        public static void modifyValue(int num) {
            num = num + 5;
            System.out.println("Value inside method: " + num);
        }
    }

    输出

    java 复制代码
    Value inside method: 15 
    Value after method call: 10
  2. 引用传递(Pass by Reference):引用传递是指在方法调用时,实际参数的地址被传递给了方法中的形式参数,即在方法内部修改形参的值会影响到实参。在Java中,对象引用是按值传递的,也就是说,虽然传递的是对象的引用,但是对对象属性的修改会影响到实际对象。

    java 复制代码
    public class Main {
        public static void main(String[] args) {
            StringBuilder sb = new StringBuilder("Hello");
            modifyReference(sb);
            System.out.println("Value after method call: " + sb);
        }
    
        public static void modifyReference(StringBuilder builder) {
            builder.append(" World");
            System.out.println("Value inside method: " + builder);
        }
    }

    输出

    java 复制代码
    Value inside method: Hello World
    Value after method call: Hello World

    在这个例子中,虽然sb是按值传递给modifyReference方法的,但是由于传递的是对象引用,因此在方法内部对builder的修改会影响到实际对象sb。

相关推荐
Ramble_Naylor3 分钟前
Rust深度解读:异步流(Async Streams)与生成器的处理艺术
开发语言·后端·rust
程序员敲笔记9 分钟前
Spring IoC 容器底层实现原理与 Bean 生命周期实战
java
努力实干12 分钟前
简单工厂模式(Simple Factory Pattern)——C++
开发语言·c++·简单工厂模式
熊猫钓鱼>_>15 分钟前
平行视界兼容模式与魔法变量配置避坑【鸿蒙心迹】
运维·服务器·开发语言·笔记·华为·harmonyos·openharmony
大鹏说大话22 分钟前
PHP 大文件上传解决方案:分片上传完整思路
开发语言·php
niuyueyang39 分钟前
MCP `/mcp/status` Lifecycle 技术方案
java·服务器·数据库
杨运交44 分钟前
086-对象存储模块-基于Spring Boot的文件存储模块监控设计与实现
java·spring boot·后端
Wang's Blog1 小时前
Java 项目实战:交友项目 - 我的访客:需求说明
java·开发语言·交友
布莱克6052 小时前
C++ 中堆和栈的区别详解
开发语言·c++·栈·堆
像风一样自由20202 小时前
3.Dockerfile如何构建一个Python算法镜像
开发语言·人工智能·python·大模型