Java三种方式交换两个变量的值

简介: Java三种方式交换两个变量的值

直接上代码,代码注释里有详细的说明。

publicclassSwapTest {
publicstaticvoidmain(String[] args) {
intnum1=10;
intnum2=20;
//方式一:定义临时变量的方式//推荐使用方式inttemp=num1;
num1=num2;
num2=temp;
System.out.println("方式一num1:"+num1);
System.out.println("方式一num2:"+num2);
//方式二://好处:不用定义临时变量//弊端:① 相加操作可能超出存储范围//     ② 有局限性:只能适用于数值类型num1=10;
num2=20;
num1=num1+num2;
num2=num1-num2;
num1=num1-num2;
System.out.println("方式二num1:"+num1);
System.out.println("方式二num2:"+num2);
//方式三:使用位运算符//有局限性:只能适用于数值类型num1=10;
num2=20;
num1=num1^num2;
num2=num1^num2;
num1=num1^num2;
System.out.println("方式三num1:"+num1);
System.out.println("方式三num2:"+num2);
    }
}

运行结果:

方式一num1:20方式一num2:10方式二num1:20方式二num2:10方式三num1:20方式三num2:10Processfinishedwithexitcode0
目录
相关文章
|
存储 监控 安全
解锁ThreadLocal的问题集:如何规避多线程中的坑
解锁ThreadLocal的问题集:如何规避多线程中的坑
689 0
|
11月前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
250 2
java 中 i++ 到底是否线程安全?
|
SQL Java 数据库连接
MyBatis分页查询与特殊字符处理
MyBatis分页查询与特殊字符处理
424 0
MyBatis分页查询与特殊字符处理
|
关系型数据库 MySQL Java
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException 异常解决
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException 异常解决
|
SQL 负载均衡 Oracle
MyCat - 配置文件详解 - schema.xml 之 dataNode 与 dataHost 配置详解 | 学习笔记
快速学习 MyCat - 配置文件详解 - schema.xml 之 dataNode 与 dataHost 配置详解
MyCat - 配置文件详解 - schema.xml 之 dataNode 与 dataHost 配置详解 | 学习笔记
|
Python
Python输出表格
Python输出表格
286 2
|
数据挖掘 数据处理 Python
【亮剑】介绍了Python中以表格格式打印列表的三种方法
【4月更文挑战第30天】本文介绍了Python中以表格格式打印列表的三种方法:1) 使用字符串格式化,适用于简单场景;2) 使用prettytable库,适合需要更多格式化选项的情况;3) 使用pandas库,适用于处理大量数据和复杂分析。根据需求选择合适的方法来展示数据。
787 0
|
存储 数据库 时序数据库
InfluxDB数据保存策略
InfluxDB数据保存策略
567 0
|
存储 NoSQL 算法
Redis中ZSet的底层数据结构跳跃表skiplist,你真的了解吗?
Redis中ZSet的底层数据结构跳跃表skiplist,你真的了解吗?
447 0