当前位置:首页 > Java

java 如何引用传递

2026-03-03 10:23:37Java

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

使用数组

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

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如何读取文件

java如何读取文件

读取文件的常用方法 Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法: 使用FileInputStream和BufferedInputStream读取二进制文件…

java前景如何

java前景如何

Java 当前的市场需求 Java 在企业级开发、大数据、云计算等领域仍占据重要地位。许多大型企业(如银行、电商平台)依赖 Java 构建后端系统。招聘平台数据显示,Java 开发岗位数量稳定,尤其在…

java如何配置环境变量

java如何配置环境变量

配置Java环境变量的方法 下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK安装包。运行安装程序并按照提示完成安装,记下JDK的安装路径(例如C:\Program File…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…

如何安装java运行环境

如何安装java运行环境

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。Windows用户通常选择.exe安装包,macOS用户选择.dmg,Linu…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…