当前位置:首页 > Java

java 方法如何传递

2026-03-03 13:45:38Java

方法参数传递机制

在Java中,方法参数的传递方式分为两种:值传递(Pass by Value)和引用传递(Pass by Reference)。但严格来说,Java仅支持值传递,即使是对象类型,传递的也是引用的副本。

java 方法如何传递

基本数据类型的值传递

基本数据类型(如intdoublechar等)在方法调用时,传递的是实际值的副本。方法内部对参数的修改不会影响原始变量。

java 方法如何传递

public class Main {
    public static void modifyValue(int num) {
        num = 20;
    }
    public static void main(String[] args) {
        int x = 10;
        modifyValue(x);
        System.out.println(x); // 输出 10(未改变)
    }
}

对象类型的引用传递(值传递的引用副本)

对象类型(如数组、类实例)传递的是引用的副本,方法内部可以通过引用修改对象的属性,但重新赋值不会影响原始引用。

public class Main {
    static void modifyArray(int[] arr) {
        arr[0] = 99; // 修改数组元素会影响原始对象
        arr = new int[]{100, 200}; // 重新赋值不影响原始引用
    }
    public static void main(String[] args) {
        int[] myArray = {1, 2, 3};
        modifyArray(myArray);
        System.out.println(myArray[0]); // 输出 99
    }
}

不可变对象(如String)的特殊情况

String等不可变对象在方法内重新赋值时,会创建新对象,原始引用不受影响。

public class Main {
    static void modifyString(String str) {
        str = "New Value"; // 不影响原始引用
    }
    public static void main(String[] args) {
        String s = "Original";
        modifyString(s);
        System.out.println(s); // 输出 "Original"
    }
}

总结

  • 基本类型:传递值的副本,方法内修改不影响原始变量。
  • 对象类型:传递引用的副本,方法内可修改对象属性,但重新赋值不影响原始引用。
  • 不可变对象(如String):重新赋值会创建新对象,原始引用不变。

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

相关文章

如何导入java项目

如何导入java项目

导入Java项目的方法 使用IDE导入(如IntelliJ IDEA或Eclipse) 打开IDE后选择导入现有项目,导航至项目根目录(包含pom.xml或build.gradle的文件位置)。IDE…

java面试官如何面试别人

java面试官如何面试别人

考察基础知识 从Java核心概念入手,包括面向对象特性(封装、继承、多态)、集合框架(ArrayList vs LinkedList、HashMap实现原理)、异常处理机制、多线程(线程池、锁机制)等…

vue实现方法调用

vue实现方法调用

Vue 方法调用的实现方式 在 Vue 中,方法调用主要通过 methods 选项定义,并通过模板或脚本直接调用。以下是常见的实现方式: 在模板中直接调用方法 通过 v-on 指令(或简写 @)绑定…

vue badge 实现方法

vue badge 实现方法

使用组件库实现 Badge Vue 生态中主流组件库(如 Element UI、Ant Design Vue、Vuetify 等)均提供现成的 Badge 组件。 以 Element UI 为例:…

vue实现赋值方法

vue实现赋值方法

Vue 实现赋值的方法 在 Vue 中,赋值操作需要遵循响应式规则,确保数据变化能够触发视图更新。以下是常见的赋值方法: 直接赋值(仅适用于根级属性) 对于 Vue 实例的 data 对象中的根级属…

vue实现递归方法调用

vue实现递归方法调用

递归组件的实现 在Vue中实现递归方法调用通常用于处理树形结构数据或嵌套组件。递归组件的核心是组件调用自身,通过条件判断终止递归。 定义递归组件时,组件需设置name属性以便在模板中调用自身: &…