方法的参数传递机制底层原理

本文深入探讨了Java中参数传递的机制,详细分析了基本数据类型与引用数据类型的传递区别,通过具体代码示例展示了变量、字符串、包装类对象、数组及自定义对象在方法调用过程中的值变化,揭示了Java参数传递的本质。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法的参数传递机制:

  • 形参是基本数据类型,则传递数据值
  • 形参的引用数据类型,则传递地址值(特殊的类型:String,包装类等对象不可变性)

代码分析:

package javaSE;

import java.util.Arrays;

public class Test4 {
    public static void main(String[] args) {
        int i = 1;
        String str = "hello";
        Integer num = 2;
        int[] arr = {1,2,3,4,5};
        MyData my = new MyData();
        change(i,str,num,arr,my);
        System.out.println("i="+i);
        System.out.println("str="+str);
        System.out.println("num="+num);
        System.out.println("arr="+ Arrays.toString(arr));
        System.out.println("my.a="+my.a);
    }

    public static void change(int j,String s,Integer n,int[] a ,MyData m){
        j+=1;
        s+="world";
        n+=1;
        a[0]+=1;
        m.a+=1;
    }

    static class MyData{
        int a = 10;
    }
}

所以最后发生改变的只有arr和my,也就是输出结果为

i=1
str=hello
num=2
arr=[2, 2, 3, 4, 5]
my.a=11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值