JavaSE面试题03:方法的参数传递机制

方法的参数传递机制
题目
import java.util.Arrays;

public class Test {
    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();
        chang(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 chang(int j,String s,Integer n,int[] a,MyData m){
        j+=1;
        s+="world";
        n+=1;
        a[0] +=1;
        m.a+=1;
    }
}
class MyData{
    int a=10;
}
运行结果
i=1
str=hello
num=2
arr=[2, 2, 3, 4, 5]
my.a=11
讲解
基本

形参列表:

int j,String s,Integer n,int[] a,MyData m

实参列表:

chang(i,str,num,arr,my);
  • 实参给形参传递值

形参是基本数据类型:传递的是数据值

形参是引用数据类型:传递的是地址值

综合解释
  1. i是基本数据类型,传递的数据值,所以i不变还是1
  2. str是String类,具有不可变性,详细看下文,所以仍然是hello
  3. num是包装类具有不可变性,同上
  4. arr是引用数据类型 ,传递的是地址值,所以改变了
  5. MyData是类,也属于引用数据类型,传递的是地址值,所以也改变了
考点
  • 方法的值传递机制
  • String、包装类等对象的不可变性
对应知识点解释
  1. Java中类的成员之二:方法(method)
  2. Java中形参的传递机制:值传递机制
  3. Java中String类是什么?什么是其不可变性?String互相拼接会怎样?
  4. Java中什么是包装类?包装类与基本数据类型如何转换?
  5. Java基础之命名规范、变量的定义、数据类型及其转换、String字符串等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金士曼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值