专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java是引用传递还是值传递?(java哪些是引用传递)

temp10 2024-11-11 13:50:24 java教程 11 ℃ 0 评论

在 Java 中,传递参数的方式被称为按值传递(pass-by-value)。这意味着方法在接收参数时,实际上是将参数的副本传递给方法,而不是直接传递参数本身。

当你将一个变量作为参数传递给一个方法时,Java 会创建该变量的一个副本,并将该副本传递给方法。这意味着方法内部对参数的修改不会影响原始变量的值。这是因为副本和原始变量是不同的存储位置,它们指向不同的内存地址。

Java是引用传递还是值传递?(java哪些是引用传递)

对于引用类型的参数(如对象、数组等),副本实际上是对对象引用的拷贝。在方法内部,你可以使用这个副本来访问和修改对象的属性,但是如果你重新分配一个新的对象给这个引用,这个变化不会影响到原始的引用。

通过一个例子来说明

public class Main {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Hello");
        modifyStringBuilder(sb);
        System.out.println(sb); // 输出: Hello World
    }

    public static void modifyStringBuilder(StringBuilder str) {
        str.append(" World");
    }
}

在这个例子中,modifyStringBuilder方法接收一个StringBuilder对象的副本。在方法内部,我们修改了副本的值,将其附加了一个字符串。尽管我们修改了副本,但原始的sb变量仍然保持不变,输出结果仍然是"Hello"。

因此,虽然 Java 中的参数传递方式是按值传递,但对于引用类型的参数,传递的是引用的副本。这使得我们可以在方法内部操作引用指向的对象,但不能改变原始引用的指向。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表