Java——通过方法交换实参值

想写一个方法来交换main函数中的两个变量值,代码如下:

public class Test {public static void swap(int x,int y) {int tmp = x;x = y;y = tmp;}public static void main(String[] args) {int a = 10;int b = 20;System.out.println("交换前:"+ a +" " + b);swap(a,b);System.out.println("交换后:"+ a +" " + b);}
}

运行结果:

解析:并未发生交换,这是因为swap()方法中只改变了形参的值,对实参未进行改变,这些交换只发生在栈上


想要改变实参值,可借用数组交换,也可利用类开辟对象空间,通过传址交换,这些交换发生在堆上

代码示例:

class MyValue{public int val;
}public class Test {public static void swap(MyValue myV1,MyValue myV2){int temp = myV1.val;myV1.val = myV2.val;myV2.val = temp;}public static void main(String[] args) {MyValue myValue1 = new MyValue();MyValue myValue2 = new MyValue();myValue1.val = 1;myValue2.val = 2;System.out.println("交换前:" + myValue1.val + " " + myValue2.val);swap(myValue1,myValue2);System.out.println("交换前:" + myValue1.val + " " + myValue2.val);}}

解析:

 

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

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

相关文章

Autodesk Maya 2025软件安装教程(附软件下载地址)

软件简介: 软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法! Autodesk Maya 2025是一款领先的三维动画设计软件,界面直观且功能丰富。它集成了全球领先的3D设计技术,提供了多种创意功能&a…

深度学习 --- stanford cs231 编程作业(如何在chrome中安装colab)

stanford cs231 编程作业(如何开始你的colab编程) 斯坦福231n的所有作业都要求在colab里面做,colab可以为你提供免费的云计算。实际上在他的官网中也有关于如何安装colab的详细说明视频。 https://youtu.be/DsGd2e9JNH4https://youtu.be/DsGd2e9JNH4 我…

2831.找出最长等值子数组(哈希表+滑动窗口法)

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 如果子数组中所有元素都相等,则认为子数组是一个 等值子数组 。注意,空数组是 等值子数组 。 从 nums 中删除最多 k 个元素后,返回可能的最长等值子数组的长度。 子数组 是数组中一个连…

电路笔记 :元器件焊接相关 酒精灯松香浴加热取芯片

记录一下只使用松香和小火源加热(如酒精灯、小蜡烛)从电路板中取芯片。 过程 多放松香 让松香淹没芯片尽量均匀加热,等芯片旁边的松香开始从芯片里冒细小的“泡泡”,就差不多了 注:这种方法也可以用于焊接&#xff0…

Qt QString详细用法

一.基础用法 1.创建QString对象 QString str1 "Hello, World!"; QString str2("This is a QString object."); //一个是等号的重载,一个是拷贝构造,本质上是等价的 2.获取字符串长度 int length str1.length(); // 返回字符串…

大模型落地竞逐,云计算大厂“百舸争流”

作者 | 辰纹 来源 | 洞见新研社 从ChatGPT到Sora,从图文到视频,从通用大模型到垂直大模型……经过了1年多时间的探索,大模型进入到以落地为先的第二阶段。 行业的躁动与资本的狂热相交汇,既造就了信仰派的脚踏实地,也…

7.从0做一个vue键盘组件

文章目录 1. 从0做一个键盘组件1.1. 最终效果1.2. 分析1.3. 实现1.4. 如何引用 1. 从0做一个键盘组件 首先是why的问题:为什么需要做键盘组件? 我们目前可知的场景: 在新增账单的时候,需要用到键盘在比如从账单列表页&#xff…

保护共享资源的方法(互斥锁)

我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

MagicAnimate: Temporally Consistent Human Image Animation using Diffusion Model

show lab NUS&bytedancehttps://github.com/magic-research/magic-animate 问题引入 输入参考图片 I r e f I_{ref} Iref​和动作序列 p 1 : N [ p 1 , ⋯ , p N ] p^{1:N}[p_1,\cdots,p_N] p1:N[p1​,⋯,pN​],其中 N N N表示的是帧数,输出的是 …

探索iOS中的KVC

目录 前言 1.iOS中的KVC(键值编码) 1. 什么是KVC? 2. 使用KVC 1.设置属性值 2.获取属性值 3. KVC的高级用法 1.访问私有属性 2.访问集合属性 4. KVC的安全性 5. KVC原理 1. 查找顺序 2. 设置值 6.参考文章 前言 这篇文章主要是…

UbuntuLinux系统下安装wrk和使用

前言 wrk是一个用c语言写的压力测试工具,非常有用,但是ubuntu的软件仓库没有收录wrk,需要我们自己进行编译和安装,最近在学习一些性能测试、性能优化方面的知识,需要使用到这个强有力的工具,故此记录安装和…

Windows安全应急--在应急响应中需要知道的信息

在网络安全事件发生后,一般是要去客户现场排查问题的, 那么要想解决问题,信息的完整性决定了这次任务的成败。。 1. 你需要知道的: 先让客户梳理一遍事情的起因经过结果 询问客户需要解决的问题 了解客户的网络环境&#xff08…

【ARM 嵌入式 C 入门及渐进 6.2 -- ARMv8 C 内嵌汇编读系统寄存器的函数实现】

请阅读【嵌入式开发学习必备专栏】 文章目录 ARMv8 C 内嵌汇编读系统寄存器 ARMv8 C 内嵌汇编读系统寄存器 要在ARMv8架构中通过C代码和内嵌汇编来读取系统寄存器s3_0_c15_c5_5的值,并将其返回,可以按照以下方式实现system_read_reg函数: #…

buuctf的RSA(二)

1.RSA 知道 flag.enc 和 pub.key,典型的加密、解密 将pub,key 改为pub.txt 打开后发现公钥 在RSA公私钥分解 Exponent、Modulus,Rsa公私钥指数、系数(模数)分解--查错网 进行解密 得到e65537 n8693448229604811919066606200349480058890565…

innerText和innerHTML的区别

innerHTML和innerText都是元素的属性,通过修改这个元素的属性可以达到修改元素内容的目的。但是二者之间略有不同。具体来说,它们的区别如下: innerHTML可以获取或设置元素内部的HTML内容,包括HTML标签,而innerText则…

LeetCode 79.单词搜索

原题链接:. - 力扣(LeetCode) 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内…

若依前后端分离版本-前后端交互整理

ruoyi-ui与后端交互 方法一:表单 使用 headers: {Content-Type:application/x-www-form-urlencoded}, ruoyi-ui的vue中 //ruoyi-ui的vue中定义 formData: {a: 111,b: 111,c: 1,}, //vue中方法调用 outBound() { empty(this.formData).…

6款网页表白代码6(附带源码)

6款网页表白代码6 前言效果图及部分源码1.爱心倒计时2.一起看星星3.爱心4.爱心(有鼠标移动特效)5.爱心(高级效果)6.爱心(3D效果) 领取源码下期更新预报 前言 大部分人都有喜欢的人,学会这些表白…

蓝桥杯物联网竞赛_STM32L071KBU6_关于sizo of函数产生的BUG

首先现象是我在用LORA发送信息的时候,左边显示长度是8而右边接收到的数据长度却是4 我以为是OLED显示屏坏了,又或者是我想搞创新用了const char* 类型强制转换数据的原因,结果发现都不是 void Function_SendMsg( unsigned char* data){unsi…

微软Edge

微软Edge浏览器概述 功能介绍 微软Edge是一款基于Chromium开源项目的网页浏览器,旨在提供更快的网页加载速度、更高的安全性和更好的用户体验。它支持多种操作系统,包括Windows、macOS、Android和iOS,能够满足不同用户的需求。Edge浏览器拥…