当前位置:首页 > Java

java 方法如何传递

2026-02-05 02:31:19Java

Java 方法参数传递机制

Java 中方法参数的传递方式分为两种:值传递(Pass by Value)和引用传递(Pass by Reference)。但严格来说,Java 只有值传递,即传递的是变量的副本。

java 方法如何传递

基本数据类型的值传递

对于基本数据类型(如 intdoublechar 等),方法接收的是变量的值副本,修改副本不会影响原始变量。

java 方法如何传递

public class Main {
    public static void modifyValue(int num) {
        num = 100;  // 修改的是副本,不影响原始变量
    }

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

引用类型的值传递

对于引用类型(如对象、数组),方法接收的是对象引用的副本,副本和原始引用指向同一个对象,因此修改对象会影响原始数据。

public class Main {
    public static void modifyArray(int[] arr) {
        arr[0] = 100;  // 修改的是引用指向的对象
    }

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

不可变对象的影响

对于 StringInteger 等不可变对象,修改方法内的引用副本不会影响原始引用。

public class Main {
    public static void modifyString(String str) {
        str = "New Value";  // 修改的是副本引用,不影响原始引用
    }

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

总结

  • 基本类型:传递的是值的副本,方法内修改不影响原始变量。
  • 引用类型:传递的是引用的副本,方法内修改对象会影响原始数据,但修改引用本身(如重新赋值)不影响原始引用。
  • 不可变对象:类似于基本类型,方法内修改引用不影响原始引用。

标签: 方法java
分享给朋友:

相关文章

java如何创建线程

java如何创建线程

创建线程的方法 在Java中,创建线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法: 继承Thread类 通过继承Thread类并重写run()方法可以创建线程。…

java如何下载

java如何下载

下载Java的步骤 访问Oracle官方网站或OpenJDK项目页面下载Java开发工具包(JDK)。Oracle JDK适用于商业用途,OpenJDK为开源版本。 打开浏览器,进入Oracle J…

java程序如何运行

java程序如何运行

编写Java代码 使用文本编辑器或IDE(如IntelliJ IDEA、Eclipse)编写Java源代码,保存为.java文件。例如: public class HelloWorld {…

如何运行java程序

如何运行java程序

编写Java代码 创建一个以.java为扩展名的文件,例如HelloWorld.java。文件内容需包含一个类定义,类名必须与文件名一致。例如: public class HelloWorld {…

如何学java

如何学java

学习Java的基础知识 Java是一门面向对象的编程语言,掌握基础语法是入门的关键。需要了解变量、数据类型、运算符、控制结构(如if-else、for循环、while循环)、数组等概念。可以通过官方文…

如何学习java

如何学习java

学习Java的步骤 理解基础知识 从Java的基本语法开始,包括变量、数据类型、运算符、控制流(if-else、循环)等。掌握这些基础概念是后续学习的基石。 学习面向对象编程(OOP) Java是一…