:::info 💡 根据 遗忘曲线:如果没有记录和回顾,6天后便会忘记75%的内容
读书笔记正是帮助你记录和回顾的工具,不必拘泥于形式,其核心是:记录、翻看、思考 :::

java的值传递与址传递

问题:在java中方法传参到底是值传递还是址传递?

答:java参数传递问题需要分情况讨论: 1 传递的参数为基本类型,则是值传递; 2 传参为引用类型参数,就是址传递;

1 基本数据类型

案例1:【问:num1的值会不会变? 答:不会】

  1. public static void main(String[] args) {
  2. int num1 = 100; //定义变量num1
  3. test1(num1); //把num1,作为参数传给test1方法
  4. System.out.println(num1);
  5. }
  6. public static int test1(int num1){
  7. return num1 = 200; //在test1方法中,给num1重新赋值
  8. }

基本数据类型作为参数的内存图解:

方法参数传递 - 图1

2 引用类型数据

案例1:【问:num1的值会不会变? 答:会】

  1. public static void main(String[] args) {
  2. int [] num1 = {10,11}; //定义数组num1
  3. test1(num1); //把num1地址,作为参数传给test1方法
  4. System.out.println(num1[0]);
  5. }
  6. public static int test1(int [] num1){
  7. return num1[0] = 200; //在test1方法中,给num1[0]重新赋值
  8. }

引用类型数据作为参数的内存图解:

方法参数传递 - 图2