-
值传递(Pass by Value):值传递意味着在方法调用时,实际参数的值被传递给方法中的形式参数,即在方法内部修改形参的值不会影响实参的值。Java中的基本数据类型(如int、float、double等)就是值传递的典型例子。
javapublic 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); } }输出
javaValue inside method: 15 Value after method call: 10 -
引用传递(Pass by Reference):引用传递是指在方法调用时,实际参数的地址被传递给了方法中的形式参数,即在方法内部修改形参的值会影响到实参。在Java中,对象引用是按值传递的,也就是说,虽然传递的是对象的引用,但是对对象属性的修改会影响到实际对象。
javapublic 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); } }输出
javaValue inside method: Hello World Value after method call: Hello World在这个例子中,虽然
sb是按值传递给modifyReference方法的,但是由于传递的是对象引用,因此在方法内部对builder的修改会影响到实际对象sb。
java中的什么是值传递,什么是引用传递
。。。。。962024-03-27 13:27
相关推荐
沫璃染墨10 分钟前
《Linux工程实践篇(二):线程池实战——从线程安全单例到完整源码实现》starzy199015 分钟前
Flink SlotManager启动流程源码深度剖析:从ResourceManager到Slot分配的完整链路极光通讯16 分钟前
服务器内存来料检验(IQC)实操:批次追溯、外观判定与上机验证4SAPI18 分钟前
AI API Gateway平台哪个好?从架构视角看企业多模型网关选型与实践EatFan20 分钟前
2026 后端 AI 工程化:Spring AI 2.0、MCP 协议与 Agent 内嵌如何收进 Java 生产系统泡海椒24 分钟前
JQuick-Excel 多字段 TRANSFORM:让当前行字段、JContext 与展示列各归其位JPower_mr.g27 分钟前
SmartCall 音色管理技术解析:基于 SPI 的可扩展音色注册架构测试开发Kevin28 分钟前
IDEA工程结构解析:项目、模块、库、Facet、Artifact (工件) 概念说明大侠归来30 分钟前
Spring Boot 2.1 → 3.5 迁移推演:从实战出发的完整路线图Wang's Blog37 分钟前
Java 中间件之 RabbitMQ 快速入门: SpringAMQP 的 DirectExchange 路由模式