【面试】JAVA中交换值的三种方式
方式一:异或法
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中交换值的三种方式相关推荐
- JAVA实现多线程的三种方式
在Java中可通过三种方式来实现多线程: 1.继承Thread类,重写run( )方法 2.实现Runnable接口,重写run( )方法 3.实现Callable接口,重写call( )方法并使用F ...
- Java中创建对象的四种方式
为什么80%的码农都做不了架构师?>>> Java中创建对象的四种方式 (1) 用new语句创建对象,这是最常见的创建对象的方法. (2) 运用反射手段,调用java.l ...
- Java实现数据共享的三种方式
Java实现数据共享的三种方式 目录 文章目录 1.类的静态变量 2.类内声明共享数据类型的引用 3.内部类 ***后记*** : 内容 1.类的静态变量 示例:老师和学生共用一间教室 Classro ...
- 12月18日云栖精选夜读 | Java 中创建对象的 5 种方式!...
作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法,我们会在这篇文章中学到. Java中有5种创建对象的方式,下面给出它们的 ...
- Java中创建对象的几种方式
Java中创建对象的几种方式 1.使用new创建对象,在堆上创建. 2.克隆 3.反序列化 4.反射创建对象 5.NIO中可以使用本地方法直接分配堆外内存. 转载于:https://www.cnblo ...
- C++使用命名空间中成员的三种方式
通过简单的代码来介绍使用命名空间中成员的三种方式(我们最常用到的命名空间是是标准库std,下面的命名空间都以std为例): 使用作用域符:: 1 #include<iostream> 2 ...
- Class java用法,java中Class的三种实例化
1.调用Object类中的getClass()方法:import java.util.Date; public class ReflectTest3 { public static void main ...
- python的命名空间_python中命名空间的三种方式介绍(附示例)
本篇文章给大家带来的内容是关于python中命名空间的三种方式介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. python中的命名空间分三种: 内置的命名空间,在启动解 ...
- Java中对象的三种状态
转载自 Java中对象的三种状态 Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究. 状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可 ...
最新文章
- windows优化大师怎么用_怎么在电脑上添加一款好用的提醒便签软件?
- swift视图容器_如何使用IBDesignable在Swift中创建漂亮的,可重复使用的渐变视图...
- R-CenterNet:用CenterNet对旋转目标进行检测
- java框架_2020年Java框架排行榜,谁居榜首?
- 运行caffe识别数字的模型mnist
- NYOJ6——喷水装置(一)
- 网址由http转换成https
- 南京大学计算机科学系照片,欧拉图-南京大学计算机科学与技术系.pdf
- Jsoup代码解读之五-parser(中)
- c java互通rsa_C# RSA和Java RSA互通
- JSON Assertion(JSON断言)
- XNA Game Studio 4.0 Programming 随便读,随便记 “Rendering Text”
- 《基于Vue实战打造抖音WebApp》
- 计算机考研815指什么,考研815化学包括什么
- Execution failed for task ':app:processDebugGoogleServices'. No matching client found for package
- 电磁兼容设计中无法忽视的高频效应
- Delphi 把字符串复制到剪贴板
- 用JS 控制文字两行 ,展示省略号(兼容谷歌 IE等各大浏览器)
- 若依部署css样式失效时
- 放大器构成电压跟随器 proteus仿真 TLV2252