Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java是值传递还是引用传递

作者:偶然\寥寂り   发布日期:2025-05-03   浏览:62

// Java 值传递示例
public class ValuePassingExample {

    // 定义一个方法,尝试修改传入的参数值
    public static void changeValue(int x) {
        x = 10; // 尝试修改传入的参数值
        System.out.println("Inside method: " + x); // 输出修改后的值
    }

    public static void main(String[] args) {
        int num = 5;
        System.out.println("Before method call: " + num); // 输出原始值
        changeValue(num); // 调用方法,传入参数
        System.out.println("After method call: " + num); // 输出调用方法后的值
    }
}

解释说明:

  • 在这个例子中,changeValue 方法试图修改传入的参数 x 的值。由于 Java 是按值传递的,所以对 x 的修改不会影响到原始变量 num
  • 运行结果会显示 num 的值在方法调用前后没有变化,证明了 Java 是按值传递的。
// Java 引用传递(对象)示例
public class ReferencePassingExample {

    // 定义一个类
    static class Person {
        String name;

        Person(String name) {
            this.name = name;
        }
    }

    // 定义一个方法,尝试修改传入的对象属性
    public static void changeName(Person person) {
        person.name = "Alice"; // 修改对象的属性
        System.out.println("Inside method: " + person.name); // 输出修改后的属性值
    }

    public static void main(String[] args) {
        Person p = new Person("Bob");
        System.out.println("Before method call: " + p.name); // 输出原始属性值
        changeName(p); // 调用方法,传入对象
        System.out.println("After method call: " + p.name); // 输出调用方法后的属性值
    }
}

解释说明:

  • 在这个例子中,changeName 方法修改了传入的 Person 对象的 name 属性。由于 Java 中的对象是通过引用来传递的,所以对对象属性的修改会影响到原始对象。
  • 运行结果会显示 p.name 的值在方法调用后发生了变化,证明了 Java 中对象是按引用传递的。

上一篇:java判断是否是数字

下一篇:protobuf java

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站