参数传值机制

在 Java 中,方法的所有参数都是 “传值” 的

  • 基本类型:数值的拷贝

  • 引用类型:引用的拷贝

    • 方法内部改变参数对象的状态(修改某属性),改变将反映到原始对象上

      因为方法内部和外部引用的是同一个对象

    • 方法内部改变参数本身的引用(引用新对象),改变不会反映到原始对象上

      因为传递的是引用的拷贝,不是引用本身

public class Test {public static void main(String[] args) {int num = 10;modifyNum(num);System.out.println("变量num的值:" + num);   // 10String str1 = "hello";    modifyStr(str1);System.out.println("变量str1的值:" + str1); // helloString str2 = new String("hello");modifyStr(str2);System.out.println("变量str2的值:" + str2); // hello// str1 字面量 字符串常量池// str2 构造方法 堆内存区域System.out.println(str1 == str2); // falsePanda panda = new Panda("萌兰", 5);modifyPanda(panda);System.out.println("panda的name:" + panda.getName()); // 么么modifyReference(panda);System.out.println(panda); // Panda{name='么么', age=5}}public static void modifyNum(int num) {++num;}// 字符串是常量;它们的值在创建之后不能更改// 无论是通过哪种方式创建的字符串对象,一旦创建后,其内容就不能被修改public static void modifyStr(String str) {str += "world";}public static void modifyPanda(Panda panda) {panda.setName("么么");}public static void modifyReference(Panda panda) {panda = new Panda("飞云", 10);}    
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/588387.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git源码泄露

Git 源码泄露 开发人员会使用 git 进行版本控制,对站点自动部署。但如果配置不当,可能会将 .git 文件夹直接部署到线上环境,这就引起了 git 泄露漏洞,我们可以利用这个漏洞直接获得网页源码。 确定是否存在泄漏 (1&…

LabVIEW专栏二、调用子VI

该节目标是创建带子vi,修改vi属性,测试可重入和不可重入的区别 一 、设置子VI 把VI封装成为子VI,可以帮助模块化程序,简化代码结构。 任何VI本身都可以成为别的VI的子VI。 1.1、设置输入输出端子 1、在前面板空白处&#xff0…

idea快速找到maven中冲突的依赖,解决依赖冲突

红色实线:冲突,红色虚线:依赖于同一个包的多版本 选择包,右键Excluede,排除 问题原因: 一个项目中需要jar包A和jar包B,而jar包A和jar包B都需要依赖jar包C,但A需要1.2.16版本的C,B需要1.2.17版本的C,这时候就可能会产…

教育信创 | 云轴科技ZStack联合飞腾发布全场景教育信创白皮书

随着数字化时代的到来,教育行业正面临着前所未有的挑战与机遇。为了推动教育行业的数字化转型和信创人才培养,云轴科技ZStack联合飞腾于3月28日正式发布了《教育行业数字化自主创新飞腾生态解决方案白皮书》(简称《教育白皮书》)。…

SpringBoot+thymeleaf完成视频记忆播放功能

一、背景 1)客户要做一个视频播放功能,要求是系统能够记录观看人员在看视频时能够记录看到了哪个位置,在下次观看视频的时候能够从该位置进行播放。 2)同时,也要能够记录是谁看了视频,看了百分之多少。 说明:由于时间关系和篇幅原因,我们这里只先讨论第一个要求,第…

Android Studio学习5——布局layout与视图view

wrap_content,内容有多大,就有多宽(包裹) 布局 padding 边框与它自身的内容 margin 控件与控件之间

dm8 开启归档模式

dm8 开启归档模式 1 命令行 [dmdbatest1 dm8]$ disql sysdba/Dameng123localhost:5237服务器[localhost:5237]:处于普通打开状态 登录使用时间 : 3.198(ms) disql V8 SQL> select name,status$,arch_mode from v$database;行号 NAME STATUS$ ARCH_MODE ----------…

LabVIEW专栏三、探针和断点

探针和断点是LabVIEW调试的常用手段,该节以上一节的"测试耗时"为例 探针可以打在有线条的任何地方,打上后,经过这条线的所有最后一次的数值都会显示在探针窗口。断点可以打在程序框图的所有G代码对象,包括结构&#xf…

Android14之BpBinder构造函数Handle拆解(二百零四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

第四百三十八回

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 示例代码4. 内容总结 们在上一章回中介绍了"不同平台上换行的问题"相关的内容,本章回中将介绍如何在页面上显示蒙板层.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们…

MQ消息队列详解以及MQ重复消费问题

MQ消息队列详解以及MQ重复消费问题 1、解耦2、异步调用3、流量削峰4、MQ重复消费问题,以及怎么解决?4.1、重复消费产生4.2、解决方法: https://blog.csdn.net/qq_44240587/article/details/104630567 核心的就是:解耦、异步、削锋…

用html写一个爱心

<!DOCTYPE html> <html lang"zh-CN"><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8" /><title>爱您</title><style>* {padding: 0;margin: 0;}body {background-color: pin…