Java 参数传递机制解析
Java 参数传递机制解析Java 只有值传递Pass by Value没有引用传递示例代码publicclassParameterPassing{publicstaticvoidmain(String[]args){inta5;modifyPrimitive(a);System.out.println(After modifyPrimitive: a);// 输出: 5MyObjectobjnewMyObject();obj.value10;modifyObject(obj);System.out.println(After modifyObject: obj.value);// 输出: 20resetReference(obj);System.out.println(After resetReference: obj.value);// 输出: 20}publicstaticvoidmodifyPrimitive(intnum){num10;// 仅仅修改了副本不影响原始变量}publicstaticvoidmodifyObject(MyObjectobj){obj.value20;// 修改了对象的属性会影响原始对象}publicstaticvoidresetReference(MyObjectobj){objnewMyObject();// 修改的是引用的副本不影响原始对象obj.value30;}}classMyObject{intvalue;}Case 1基本类型传递inta5;modifyPrimitive(a);System.out.println(a);// 输出 5main 栈帧 modifyPrimitive 栈帧 ┌─────────┐ ┌─────────┐ │ a 5 │ ───► │ num 5 │ ← 复制了一份 └─────────┘ │ num 10│ ← 只改了副本 └─────────┘结论传入的是值的拷贝方法内修改不影响外部的aCase 2修改对象属性MyObjectobjnewMyObject();obj.value10;modifyObject(obj);System.out.println(obj.value);// 输出 20main 栈帧 堆内存 ┌──────────────┐ ┌──────────────┐ │ obj ─────────┼─────────────►│ value 10 │ └──────────────┘ └──────┬───────┘ │ obj.value 20 modifyObject 栈帧 │ 修改的是堆中同一个对象 ┌──────────────┐ ┌──────▼───────┐ │ obj(副本)────┼─────────────►│ value 20 │ └──────────────┘ └──────────────┘结论传入的是引用的拷贝但两个引用指向同一个堆对象所以通过副本修改属性原对象也会变Case 3重新赋值引用resetReference(obj);System.out.println(obj.value);// 输出 20不是 30main 栈帧 堆内存 ┌──────────────┐ ┌──────────────┐ │ obj ─────────┼─────────────►│ value 20 │ ← main 的 obj 始终指向这里 └──────────────┘ └──────────────┘ resetReference 栈帧 ┌──────────────┐ ┌──────────────┐ │ obj(副本) ┼──────────X │ value 20 │ │ │ │ └──────────────┘ │ ▼ │ ┌──────────────┐ │ 重新指向 ───┼─────────────►│ value 30 │ ← new MyObject()新对象 └──────────────┘ └──────────────┘ 方法结束后这个新对象直接被 GC结论obj new MyObject()只是让副本引用指向了新对象main 中的obj完全不受影响三种情况总结情况传递的内容能否影响原值基本类型值的拷贝❌ 不能对象修改属性引用的拷贝同一对象✅ 能对象重新赋值引用的拷贝断开连接❌ 不能一句话总结Java 传递的永远是副本。基本类型副本是值对象副本是引用地址。你可以通过地址修改房间里的家具属性但你无法让别人搬去另一套房子重新赋值引用。

相关新闻

深入解析SPI总线协议与MSPM0微控制器实现及配置实战

深入解析SPI总线协议与MSPM0微控制器实现及配置实战

1. 深入理解SPI:从总线协议到MSPM0的实现在嵌入式系统开发中,微控制器与外设之间的通信是构建功能的核心。无论是读取传感器数据、配置无线模块,还是与存储芯片交换信息,都需要一个可靠、高效的通信桥梁。串行外设接口&#xff08…

2026/6/29 17:20:37阅读更多 →
PageAdmin CMS建站系统承载千万级内容和高并发的架构讲解

PageAdmin CMS建站系统承载千万级内容和高并发的架构讲解

在中大型网站中,内容和并发往往会达到千万级别,市面的cms基本都是单体架构,都不适合大型数据和高并发,不分库,甚至不分表,以wordpress为例,每个栏目的数据都放在一个表中,当数据达到…

2026/6/29 17:15:37阅读更多 →
数据科学与大数据技术毕业设计本科生方向推荐

数据科学与大数据技术毕业设计本科生方向推荐

0 选题推荐 - 人工智能篇 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满足实际…

2026/6/29 17:15:37阅读更多 →
渗透测试实战入门:从零到精通DC-1靶场攻防全流程解析

渗透测试实战入门:从零到精通DC-1靶场攻防全流程解析

1. 项目概述:为什么“从零到实战”是每个安全从业者的必经之路几年前,我刚从开发转行做安全,面对“渗透测试”这四个字,感觉就像面对一座没有地图的迷宫。网上资料要么是零散的“炫技”片段,要么是晦涩难懂的理论堆砌&…

2026/6/29 18:30:49阅读更多 →
Selenium 环境搭建与基础语法(Python)

Selenium 环境搭建与基础语法(Python)

Selenium 是目前 Web UI 自动化最主流、最入门的开源框架,适配 Python 语言,零基础易上手。本文手把手带你完成全套环境搭建、浏览器驱动配置、基础语法实操,从零跑通第一条自动化脚本。一、环境所需工具Python3 环境、Pycharm 编辑器、Selen…

2026/6/29 18:30:49阅读更多 →
自动化测试选型:什么时候适合做 UI 自动化

自动化测试选型:什么时候适合做 UI 自动化

很多测试新人盲目上手 UI 自动化,写完一堆脚本却从不运行、项目落地即废弃,核心原因是不会选型、分不清自动化适用场景。UI 自动化不是万能的,有严格的适用边界。本文帮你彻底搞懂:什么项目适合做 UI 自动化、什么场景坚决不做、自…

2026/6/29 18:30:49阅读更多 →
AGV二维码导航:从原理到部署的完整技术解析

AGV二维码导航:从原理到部署的完整技术解析

1. AGV二维码导航技术概述 想象一下走进一个现代化仓库,看到无人驾驶的小车有条不紊地穿梭其中,准确地将货物运送到指定位置。这些小车就是AGV(自动导引运输车),而让它们如此"聪明"的关键技术之一就是二维码…

2026/6/29 18:30:49阅读更多 →
探索全新可能:用Ryujinx在电脑上开启你的Switch游戏之旅

探索全新可能:用Ryujinx在电脑上开启你的Switch游戏之旅

探索全新可能:用Ryujinx在电脑上开启你的Switch游戏之旅 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx 你是否曾想过,在不拥有Switch主机的情况下,…

2026/6/29 18:30:48阅读更多 →
深入解析MSP430 eUSCI SPI寄存器:从原理到实战配置指南

深入解析MSP430 eUSCI SPI寄存器:从原理到实战配置指南

1. 项目概述与核心价值在嵌入式系统开发中,串行外设接口(SPI)几乎是每个工程师都必须掌握的核心通信协议。无论是驱动一块OLED屏幕、读取一个温湿度传感器,还是与外部Flash存储器进行数据交换,SPI都因其简单、高速、全…

2026/6/29 18:25:47阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/29 3:27:55阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/29 2:19:08阅读更多 →
如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南

如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南

如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南 【免费下载链接】DeepBump Normal & height maps generation from single pictures 项目地址: https://gitcode.com/gh_mirrors/de/DeepBump 还在为3D建模中的纹理制作而烦恼吗?…

2026/6/29 0:01:47阅读更多 →
OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单!

OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单!

OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单! 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore(OCAT) 项目地址: https://gitcode.com/gh_mirrors/oc/OCA…

2026/6/29 0:01:47阅读更多 →
终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像

终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像

终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 你是否厌倦了Windows 11系统自带的20…

2026/6/29 0:01:47阅读更多 →