不使用第三方变量的情况下交换两个数值

简介: 不使用第三方变量的情况下交换两个数值

不使用第三方变量的情况下交换两个数值

三种思路

1. 通过加减运算变换两个整数的值,利用两数之和减去另一个数的方式(此方法有局限性,如果两个数的数值过大,会超出范围造成数据丢失精度,数据发生变化)
public class Test {
  // 算术运算
    public static void main(String[] args) {
        int a = 6, b = 10;
        // a = 10
        a = b - a;
        // b = 20
        b = b - a;
        // a = 30
        a = a + b;
        System.out.println("算术运算:a=" + a + "   b=" + b);
    }
}

运行结果

算术运算:a=10 b=6

2. 通过位运算符异或(^)操作,利用任何数与0进行异或操作后的结果都为该数本身的特性
public class Test {
    // 异或运算(转为2进制计算,值相同为0,不同为1)
    public static void main(String[] args) {
        int a = 6; // a:0000 0110
        int b = 10; //b:0000 1010
        // a:0000 1100  12
        a = a ^ b;
        // b:0000 0110  6
        b = a ^ b;
        // a:0000 1010  10
        a = a ^ b;
        System.out.println("异或运算:a=" + a + "   b=" + b);
    }
}

运行结果

异或运算:a=10 b=6

3. 用变量本身交换数值
public class Test {
    // 用变量本身交换数值
    public static void main(String[] args) {
        int a = 6,b = 10;
        // 直接把b赋值给a 再用总和减a拿到b
        // b = (a+b) - (a=b);
        // a赋值给b加0  b赋值给a
        b = a + (a = b) * 0;
        System.out.println("变量本身交换数值:a=" + a + "   b=" + b);
    }
}

运行结果

变量本身交换数值:a=10 b=6

目录
相关文章
|
存储 Java
Java堆和栈的区别和介绍以及JVM的堆和栈
Java堆和栈的区别和介绍以及JVM的堆和栈 一、Java的堆内存和栈内存 Java把内存划分成两种:一种是堆内存,一种是栈内存。 堆:主要用于存储实例化的对象,数组。由JVM动态分配内存空间。一个JVM只有一个堆内存,线程是可以共享数据的。
6471 0
|
运维 Devops 测试技术
CICD与DevOps的详解与比较
CICD与DevOps的详解与比较
1250 1
|
监控 Devops 测试技术
DevOps实践: 持续集成和持续部署(CI/CD)的入门指南
【9月更文挑战第10天】在快速迭代的软件开发世界中,DevOps已经成为加速产品交付、提升软件质量和团队协作的关键策略。本文将深入浅出地介绍DevOps的核心组成部分——持续集成(Continuous Integration, CI)与持续部署(Continuous Deployment, CD)的基本概念、实施步骤以及它们如何革新传统的软件开发流程。你将学习到如何通过自动化工具简化开发流程,并理解为什么CI/CD是现代软件开发不可或缺的一环。
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
278 0
|
Prometheus 监控 Cloud Native
Prometheus VS ELK Stack:容器监控与日志管理工具的比较与选择
在容器化时代,有效的容器监控与日志管理工具对于确保应用程序的可靠性和可维护性至关重要。本文将比较两个主流工具,Prometheus和ELK Stack,探讨它们在容器监控和日志管理方面的特点、优势和适用场景,帮助读者做出明智的选择。
|
Prometheus 监控 Cloud Native
SpringBoot3 整合Prometheus + Grafana
SpringBoot3 整合Prometheus + Grafana
SpringBoot3 整合Prometheus + Grafana
|
存储 Cloud Native Java
深入比较Spring Cloud Nacos和Eureka的区别
【2月更文挑战第12天】
1595 0
|
Linux iOS开发 MacOS
实现虚拟人直播有那些开源软件
实现虚拟人直播有那些开源软件
547 1
|
存储 缓存 算法
Linux系统中内核态、用户态和零拷贝技术解析
Linux系统中内核态、用户态和零拷贝技术解析
847 0
|
Prometheus 监控 Kubernetes
一文搞懂基于 Prometheus Stack 监控 Java 容器
Hello folks,我是 Luga,今天我们来分享一下如何基于 Prometheus Stack 可视化监控运行在 Kubernetes Cluster 上的 Spring Boot 微服务容器实例。这里,主要针对每一个 Java 容器实例的指标进行监控,具体涉及:CPU、内存、线程信息、日志信息、HTTP 请求以及 JVM 等。
768 0