当前位置:首页 > Java

java 如何引用传递

2026-03-03 10:23:37Java

Java 中实现引用传递的方法

Java 中所有对象变量的赋值和参数传递都是按值传递,但传递的值是对象的引用(即内存地址)。因此可以通过以下方式模拟引用传递的效果:

使用对象封装

通过将需要修改的变量封装在对象中,传递对象引用即可间接修改原数据。例如:

java 如何引用传递

class Wrapper {
    int value;
}

void modifyValue(Wrapper wrapper) {
    wrapper.value = 100;
}

// 调用
Wrapper w = new Wrapper();
w.value = 50;
modifyValue(w);
System.out.println(w.value); // 输出 100

使用数组

数组是对象,传递数组引用可以修改数组内容:

java 如何引用传递

void modifyArray(int[] arr) {
    arr[0] = 99;
}

// 调用
int[] array = {1, 2, 3};
modifyArray(array);
System.out.println(array[0]); // 输出 99

使用 Atomic 类

对于基本类型,可以使用 AtomicInteger 等原子类:

import java.util.concurrent.atomic.AtomicInteger;

void modifyAtomic(AtomicInteger atomicInt) {
    atomicInt.set(200);
}

// 调用
AtomicInteger atomicInt = new AtomicInteger(50);
modifyAtomic(atomicInt);
System.out.println(atomicInt.get()); // 输出 200

使用集合类

ListMap 等集合类也是对象,传递引用后可以修改内容:

void modifyList(List<String> list) {
    list.add("new item");
}

// 调用
List<String> myList = new ArrayList<>();
modifyList(myList);
System.out.println(myList); // 输出 [new item]

注意事项

  • Java 没有真正的引用传递(如 C++ 的 &),只能通过传递对象引用来模拟。
  • 基本类型(intdouble 等)无法直接实现引用传递,必须封装为对象。
  • 方法内对引用变量本身重新赋值(如 obj = new Object())不会影响原变量。

标签: java
分享给朋友:

相关文章

如何搭建java环境

如何搭建java环境

下载JDK 访问Oracle官网或OpenJDK官网下载适合操作系统的JDK安装包。推荐选择长期支持版本(如JDK 17或JDK 21)。 安装JDK 运行下载的安装程序,按照向导完成安装。注意…

java程序如何打包

java程序如何打包

打包Java程序的方法 使用JAR打包 Java程序可以通过JAR(Java Archive)格式打包,这是一种常见的压缩格式,适用于包含多个类文件和资源的项目。以下是使用JAR打包的步骤: 确保项…

教你如何完全卸载java

教你如何完全卸载java

卸载 Java 的步骤 Windows 系统 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到 Java 相关的条目,通常显示为“Java”或“Java(TM)”。右键点击选择卸载,按照…

java实现vue接口

java实现vue接口

Java 实现 Vue 接口的方法 在 Java 中实现 Vue 前端调用的接口,通常需要使用 Spring Boot 框架构建 RESTful API。以下是具体的实现步骤和代码示例。 创建 Sp…

php 实现 java md5

php 实现 java md5

在 PHP 中实现与 Java 相同的 MD5 哈希算法,关键在于确保编码和输出格式的一致性。以下是具体实现方法和注意事项: 确保字符串编码一致 Java 的 String.getBytes() 默…

java js实现转盘抽奖

java js实现转盘抽奖

实现转盘抽奖的步骤 HTML结构 创建转盘抽奖的基本HTML结构,包括转盘区域和抽奖按钮。 <div id="wheel"> <canvas id="wheelCanvas"&…