方式一:异或法

int i = 5, j = 9;
i = i ^ j;
j = i ^ j; -> j = i ^ j ^ j; -> j = i;
i = i ^ j; -> i = i ^ j ^ i; -> i = j;

方式二:加减法

int i =5, j = 9;
i = i + j;
j = i - j; -> j = i + j - j; -> j = i;
i = i - j; -> i = i + j - i; -> i = j;

方式三:追尾法

int i = 5, j = 9;
int temp = i;
i = j;
j = temp;

总结:三种方式的比较

异或法的效率是最高的。只能针对整数进行交换,局限性太大
加减法的效率是低于异或但是高于追尾。理论上可以交换数值类型,但实际上很少用于交换小数
追尾法的效率是最低的。可以交换任意一个类型的值

【面试】JAVA中交换值的三种方式相关推荐

  1. JAVA实现多线程的三种方式

    在Java中可通过三种方式来实现多线程: 1.继承Thread类,重写run( )方法 2.实现Runnable接口,重写run( )方法 3.实现Callable接口,重写call( )方法并使用F ...

  2. Java中创建对象的四种方式

    为什么80%的码农都做不了架构师?>>>    Java中创建对象的四种方式 (1) 用new语句创建对象,这是最常见的创建对象的方法.    (2) 运用反射手段,调用java.l ...

  3. Java实现数据共享的三种方式

    Java实现数据共享的三种方式 目录 文章目录 1.类的静态变量 2.类内声明共享数据类型的引用 3.内部类 ***后记*** : 内容 1.类的静态变量 示例:老师和学生共用一间教室 Classro ...

  4. 12月18日云栖精选夜读 | Java 中创建对象的 5 种方式!...

    作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法,我们会在这篇文章中学到. Java中有5种创建对象的方式,下面给出它们的 ...

  5. Java中创建对象的几种方式

    Java中创建对象的几种方式 1.使用new创建对象,在堆上创建. 2.克隆 3.反序列化 4.反射创建对象 5.NIO中可以使用本地方法直接分配堆外内存. 转载于:https://www.cnblo ...

  6. C++使用命名空间中成员的三种方式

    通过简单的代码来介绍使用命名空间中成员的三种方式(我们最常用到的命名空间是是标准库std,下面的命名空间都以std为例): 使用作用域符:: 1 #include<iostream> 2 ...

  7. Class java用法,java中Class的三种实例化

    1.调用Object类中的getClass()方法:import java.util.Date; public class ReflectTest3 { public static void main ...

  8. python的命名空间_python中命名空间的三种方式介绍(附示例)

    本篇文章给大家带来的内容是关于python中命名空间的三种方式介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. python中的命名空间分三种: 内置的命名空间,在启动解 ...

  9. Java中对象的三种状态

    转载自   Java中对象的三种状态 Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究. 状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可 ...

最新文章

  1. windows优化大师怎么用_怎么在电脑上添加一款好用的提醒便签软件?
  2. swift视图容器_如何使用IBDesignable在Swift中创建漂亮的,可重复使用的渐变视图...
  3. R-CenterNet:用CenterNet对旋转目标进行检测
  4. java框架_2020年Java框架排行榜,谁居榜首?
  5. 运行caffe识别数字的模型mnist
  6. NYOJ6——喷水装置(一)
  7. 网址由http转换成https
  8. 南京大学计算机科学系照片,欧拉图-南京大学计算机科学与技术系.pdf
  9. Jsoup代码解读之五-parser(中)
  10. c java互通rsa_C# RSA和Java RSA互通
  11. JSON Assertion(JSON断言)
  12. XNA Game Studio 4.0 Programming 随便读,随便记 “Rendering Text”
  13. 《基于Vue实战打造抖音WebApp》
  14. 计算机考研815指什么,考研815化学包括什么
  15. Execution failed for task ':app:processDebugGoogleServices'. No matching client found for package
  16. 电磁兼容设计中无法忽视的高频效应
  17. Delphi 把字符串复制到剪贴板
  18. 用JS 控制文字两行 ,展示省略号(兼容谷歌 IE等各大浏览器)
  19. 若依部署css样式失效时
  20. 放大器构成电压跟随器 proteus仿真 TLV2252

热门文章

  1. 深入使用XMemcached
  2. C语言链表的来源分析
  3. CSS相邻兄弟选择器
  4. CC++刚開始学习的人编程教程(9) Windows8.1安装VS2013并捆绑QT与编程助手
  5. 82.开始→运行→输入的命令集锦
  6. 深入理解计算机系统学习记录(一)
  7. Mocha BSM产品亮点——事件管理
  8. 6 个前端开发必备工具,提高你的生产力
  9. 15个C++项目列表
  10. php 图片路径混淆,爬虫遇到了字符图片混淆。pytesseract识别图片字符