当前位置: 首页 > article >正文

java方法的引用传递和值传递

1、方法的值参数传递

下面代码,它会在控制台输出什么?

public class ArrayTest {
    public static void main(String[] args) {
        int number = 100;
        System.out.println(number);
        change(number);
        System.out.println(number);
    }
    public static void change(int number) {
        number = 200;
    }
}

很多人的第一想法可能就是:100和200,但是有真正的输出是:100和100。

运行结果:

下面,对前面的程序代码进行简单分析。

所以,可以得出的结论是:对于基本数据类型的参数,形式参数的改变,不影响实际参数的值

2、方法的引用参数传递

也是先看代码,它会在控制台输出什么?

public class ArrayTest {
    public static void main(String[] args) {
        int[] arr = {10,20,30};
        System.out.println(arr[1]);
        change(arr);
        System.out.println(arr[1]);
    }
    public static void change(int[] arr) {
        arr[1] = 50;
    }
}

踩过坑之后,很多人的第一想法可能就是:20和20,但是有真正的输出是:20和50。

运行结果:

下面,对前面的程序代码进行简单分析。

(1)第一个输出的执行流程如下:

(2)执行change()方法的执行流程如下:

(3)第二个输出的执行流程如下:

所以,可以得出的结论是:对于引用数据类型的参数,形式参数的改变,影响实际参数的值


 

本文为学习笔记,所参考文章均已附上链接,若有疑问请私信!

创作不易,如果对你有点帮助的话麻烦点个赞支持一下!

新手小白,欢迎留言指正!


http://www.kler.cn/a/273125.html

相关文章:

  • Python毕业设计选题:基于django+vue的4S店客户管理系统
  • 如何对LabVIEW软件进行性能评估?
  • Linux操作系统 ------(3.文本编译器Vim)
  • 4种鼓励创业创新的方法
  • 40.第二阶段x86游戏实战2-初识lua
  • 动态规划应该如何学习?
  • 【力扣精选算法100道】——带你了解(数组模拟栈)算法
  • Java学习笔记(十八)综合练习,Properties配置文件
  • Python--类中作用域
  • 【精品】递归查询数据库 获取树形结构数据 通用方法
  • PSCA复位控制集成之复位信号
  • STM32使用常见错误合集(正在更新版)
  • sqllab第二十六A关通关笔记
  • 静态综合实验
  • 断言assert是什么?
  • #每天一道面试题# 什么是MySQL的回表查询
  • PyTorch学习笔记之基础函数篇(十五)
  • C/C++:有助于define宏定义-原文替换的例题
  • 深入解析JVM加载机制
  • 解决:visio导出公式为pdf图片乱码问题
  • Python笔记四之协程
  • [ComfyUI报错信息] 节点错误归类及处理办法(最新完整版)
  • ThreadLocal-内存泄露问题
  • 【LeetCode热题100】104. 二叉树的最大深度(二叉树)
  • 二级Java程序题--03综合应用:源代码(01-42)
  • 利用自定义 URI Scheme 在 Android 应用中实现安全加密解密功能