Java 中的值传递


了解实参和形参

方法的定义可能会用到参数,参数分为:

  • 实参(实际参数) :用于传递给函数/方法的参数,必须有确定的值。
  • 形参(形式参数) :用于定义函数/方法,接收实参,不需要有确定的值。
int a = 10;
// a 为实参
print(a);
// num 为形参
void print(int num) {
    System.out.println(num);
}

值传递和引用传递

将实参传递给方法(或函数)的方式分为两种:

  • 值传递 :方法接收的是实参值的拷贝,会创建副本。
  • 引用传递 :方法接收的值是实参所引用的对象在堆中的地址,不会创建副本,对形参的修改将影响到实参。

传递基本类型参数

public static void main(String[] args) {
    int num1 = 10;
    int num2 = 20;
    swap(num1, num2);
    // a = 20
    // b = 10
    System.out.println("num1 = " + num1);
    // num1 = 10
    System.out.println("num2 = " + num2);
    // num2 = 20
}

public static void swap(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
    System.out.println("a = " + a);
    System.out.println("b = " + b);
}

解析:

交换
拷贝
拷贝
num1--实参
a--形参
num2--实参
b--形参

一个方法不能修改一个基本数据类型的参数


传递引用类型参数

	public static void main(String[] args) {
      int[] arr = { 1, 2, 3, 4, 5 };
      System.out.println(arr[0]);
      // 1
      change(arr);
      System.out.println(arr[0]);
      // 0
	}

	public static void change(int[] array) {
      array[0] = 0;
	}
堆内存
数组
arr--实参
array--形参

这里传递的还是值,这个值是实参的地址!!!


总结

Java 中将实参传递给方法(或函数)的方式是 值传递 :

  • 如果参数是基本类型的话,传递的就是基本类型的值的拷贝,会创建副本。
  • 如果参数是引用类型,传递的就是实参所引用的对象在堆中地址值的拷贝,同样也会创建副本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值