1、方案一

 1 public static void main(String[] args) {
 2     int x = 1;
 3     int y = 2;
 4         
 5     /*
 6         通用的方案:适用于任意的数据类型借助于第三个通样类型的临时变量
 7     */
 8     int temp = x;//x变量中值就赋值给了temp  temp = 1
 9     x = y;//再把y中的值放到x中,x = 2
10     y = temp;//再把temp中的值赋值给y  y=1
11     System.out.println("x = " + x);
12     System.out.println("y = " + y);
13 }        

 

2、方案二

 1 public static void main(String[] args){
 2     int x = 1;
 3     int y = 2;
 4     /*
 5     方案二:只能适用于数值类型,有局限性
 6     */
 7     x = x ^ y;
 8     y = x ^ y;//(新的x) ^ 原来的y = (原来的x ^ 原来的y) ^ 原来的y = 原来的x  (求不同)
 9     x = x ^ y;//(新的x) ^ 新的y = (原来的x ^ 原来的y) ^ 原来的x = 原来的y
10     System.out.println("x = " + x);
11     System.out.println("y = " + y);
12 
13 }

 

3、方案三

 1 public static void main(String[] args){
 2     int x = 1;
 3     int y = 2;
 4     /*
 5     方案三:只适用于int等整数类型有风险,可能会溢出,只能适用于数值类型;相加操作可能超出存储范围
 6     */
 7     x = x + y;//有风险,可能会溢出
 8     y = x - y;//(新的x) - 原来的y = (原来的x + 原来的y)- 原来的y  = 原来的x
 9     x = x - y;//(新的x) - 新的y = (原来的x + 原来的y) - 原来的x = 原来的y
10     System.out.println("x = " + x);
11     System.out.println("y = " + y);
12 }

 

posted on 2019-11-11 12:17  格物致知_Tony  阅读(233)  评论(0编辑  收藏  举报