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

相关推荐
小杍随笔6 分钟前
Rust桌面GUI框架:性能优化与实战避坑指南
开发语言·性能优化·rust
二哈赛车手9 分钟前
新人笔记---项目中简易版的RAG检索后评测指标(@Recall ,Mrr..)实现
java·开发语言·笔记·spring·ai
做时间的朋友。9 分钟前
精准核酸检测
java·数据结构·算法
格林威11 分钟前
3D相机视觉检测:环境光太强,结构光点云全是噪点怎么办?
开发语言·人工智能·数码相机·计算机视觉·3d·视觉检测·工业相机
Rust语言中文社区18 分钟前
【Rust日报】2026-05-02 Temper - 用 Rust 编写的 Minecraft 服务器项目发布 0.1.0 版
运维·服务器·开发语言·后端·rust
许彰午22 分钟前
CacheSQL(五):桥接篇
java·数据库·缓存·系统架构
ATCH IERV33 分钟前
Java实战:Spring Boot application.yml配置文件详解
java·网络·spring boot
咸鱼2.01 小时前
【java入门到放弃】XXL-JOB
java
爱滑雪的码农1 小时前
Java基础十一 流(Stream)、文件(File)和IO
java·开发语言·python
叶小鸡1 小时前
Java 篇-项目实战-天机学堂(从0到1)-day11
java·开发语言