错误示范 1. 直接交换 public class SwapNumbers { // 直接交换 public static void swap(int a, int b) { int temp = a; a = b; b = temp; }; public static void main(String[] args) { int a = 10; int b = 20; System.out.println("交换前: a = " + a + ": b = " +…
网上看了一些使用异或交换两数,不是很好理解.现在写一下自己的理解. 首先是 异或原则,对于任意 x: x ^ x == 0; x ^ 0 == x; 思路: 根据原则,可以得到两个公式: 求a: a^b^a=b 求b: a^b^b=a 交换两个数: 定义两个数:a b a = a ^ b; // 保存 a ^ b 的结果 b = a ^ b; --> a ^ b ^ b = a // 根据公式发现,这一步求的是a,只是用b接收了 a = a ^ b; …
第一种:添加中间变量,算是最经典最简易的一种了. //添加一个中间变量 int x = 1, y = 2; int z; z = x;x = y;y = z; System.out.println(x+","+y); 虽说是最容易想到的一种,但是不建议使用,原因无他,太low. 第二种,通过加减实现. //加减 x = 1;y = 2; x = x + y; y = x - y; x = x - y; System.out.println(x+","+y); 第三…
以下方法的根本原理就是: 借助第三个变量 c = a; a = b; b = c; 运算符-不借助第三变量: a = a+b; b = a-b; a = a-b; 为运算符-不借助第三个变量: (此种方法运用这种原理:一个数对另一个数位异或两次,该数不变)a = a^b; b = a^b; a = a^b; /** * Swap * 互换两个变量的值的方法 * @author bc * @since 2018年3月27日 */ public class Swap { public static…
package jdbc; import java.sql.*; public class ConnectionDemo2 { public static final String DBDRIVER="com.mysql.jdbc.Driver"; public static final String DBURL="jdbc:mysql://localhost:3306/bizhi" ; public static final String DBUSER="…