当前位置:首页 > Java

java 如何传值

2026-02-04 21:31:34Java

传值方式概述

Java中的传值方式主要分为基本数据类型传值和引用类型传值。基本数据类型传递的是值的副本,而引用类型传递的是对象引用的副本。

基本数据类型传值

基本数据类型(如int、double、char等)在方法调用时传递的是值的副本。修改副本不会影响原始变量。

示例代码:

public class PassByValue {
    public static void modifyValue(int num) {
        num = 20;
    }

    public static void main(String[] args) {
        int originalNum = 10;
        modifyValue(originalNum);
        System.out.println(originalNum); // 输出10
    }
}

引用类型传值

引用类型(如对象、数组)传递的是对象引用的副本。虽然引用本身是副本,但指向的对象是同一个,因此通过引用修改对象会影响原始对象。

java 如何传值

示例代码:

public class PassByReference {
    static class Person {
        String name;
        Person(String name) {
            this.name = name;
        }
    }

    public static void modifyPerson(Person p) {
        p.name = "Modified";
    }

    public static void main(String[] args) {
        Person originalPerson = new Person("Original");
        modifyPerson(originalPerson);
        System.out.println(originalPerson.name); // 输出Modified
    }
}

数组传值

数组作为引用类型,传递的是数组引用的副本。通过副本引用可以修改数组内容。

java 如何传值

示例代码:

public class PassArray {
    public static void modifyArray(int[] arr) {
        arr[0] = 100;
    }

    public static void main(String[] args) {
        int[] originalArray = {1, 2, 3};
        modifyArray(originalArray);
        System.out.println(originalArray[0]); // 输出100
    }
}

不可变对象传值

对于String等不可变对象,传递的是引用的副本。但由于对象不可变,任何修改都会创建新对象,不影响原始引用。

示例代码:

public class PassString {
    public static void modifyString(String str) {
        str = "Modified";
    }

    public static void main(String[] args) {
        String originalStr = "Original";
        modifyString(originalStr);
        System.out.println(originalStr); // 输出Original
    }
}

总结

  • 基本数据类型:传递值副本,原始值不受影响
  • 引用类型:传递引用副本,可通过引用修改对象
  • 不可变对象:传递引用副本,但修改会创建新对象

标签: java
分享给朋友:

相关文章

java如何调用方法

java如何调用方法

调用方法的基本语法 在Java中,调用方法需要明确方法所属的对象(实例方法)或类(静态方法),并传递必要的参数。语法格式如下: 实例方法:对象名.方法名(参数列表); 静态方法:类名.方法名…

java如何react

java如何react

在Java中使用React 要在Java项目中集成React,通常需要将React前端与Java后端结合使用。以下是几种常见的方法: 使用Spring Boot作为后端 Spring Boot是一个…

java如何上传文件

java如何上传文件

使用HttpURLConnection上传文件 在Java中,可以通过HttpURLConnection实现文件上传功能。需要设置请求头为multipart/form-data,并构建包含文件数据的请…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…

java如何处理高并发

java如何处理高并发

Java处理高并发的方法 使用多线程和线程池 Java的java.util.concurrent包提供了线程池(如ThreadPoolExecutor)和并发工具类(如CountDownLatch、C…

如何成为java架构师

如何成为java架构师

掌握扎实的Java基础 深入理解Java核心知识,包括多线程、集合框架、JVM原理、设计模式等。熟悉Java生态中的常用框架如Spring、MyBatis、Hibernate等,并能分析其源码实现。…