随笔 - 1162  文章 - 0  评论 - 16  阅读 - 59万 

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   格物致知_Tony  阅读(237)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示

目录导航