基础语法-赋值运算符

             基础语法-赋值运算符

                                       作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.Java中赋值运算符语法简介

/**
 *     赋值运算符
 * @author 尹正杰
 *
 */
public class Dome1 {

    public static void main(String[] args) {
        /*
         *     常见的赋值运算符:
         *         =:
         *             表示赋值运算符,如"a = 100".
         *         +=:
         *             也是一种加法赋值运算符的一种简写形式,如"a += 100"表示 "a = a + 100".
         *         -=:
         *             也是一种减法赋值运算符的一种简写形式,如"a -= 100"表示 "a = a - 100".
         *         *=:
         *             也是一种乘法赋值运算符的一种简写形式,如"a *= 100"表示 "a = a * 100".
         *         /=:
         *             也是一种除法赋值运算符的一种简写形式,如"a /= 100"表示 "a = a / 100".
         *         %=:
         *             也是一种取模赋值运算符的一种简写形式,如"a %= 100"表示 "a = a % 100".
         */
        
        int a = 100;
        
        a += 20;    //等价于a = a + 20;
        
        System.out.println(a);
        
        short b = 10;
        
        //b = b + 20;    //这种写法时编译失败的,因为b会被隐式提升为int类型,运算之后的结果还是int类型,所以赋值给short类型会失败,即会有安全隐患。
        
        b = (short)(b + 20);     //等价于 "b += 20;",因为"+="运算在赋值时,会自动帮咱们完成了转换操作.
    
        System.out.println(b);
        
    }
}

 

二.不引入第三方变量使得两个整数值发生互换

public class Demo {

    public static void main(String[] args) {
        /*
         *     面试题:
         *         对两个整数变量的值进行互换,不使用第三方变量.
         */
        int x = 3000;
        int y = 6000;
        System.out.println("x=" + x + ",y=" + y);
        
        //使用第三方变量实现两个整数变量的值进行互换,不符合题意.
//        int temp = x;
//        x = y;
//        y = temp;
//        System.out.println("x=" + x + ",y=" + y);
        
        /*
         *     虽然没有引入一个新的变量就实现了整数互换,但是这种方式有一个安全隐患.
         * 
         *     当x和y的值都比较大,那么相加后的结果可能会超过int的取值范围,因此这种方法不推荐使用.
         */
//        x = x + y;
//        y = x - y;
//        x = x - y;
//        System.out.println("x=" + x + ",y=" + y);
        
        /*
         *     使用^位运算符,这种方式使用了位运算,效率是最高,而且还能避免超出int取值范围的问题.
         *     
         *     但是可读性很差,这种形式只有在面试的时候会写,一般工作中都会借助于第三方变量实现.
         */
        x = x ^ y;
        y = x ^ y;
        x = x ^ y;
        System.out.println("x=" + x + ",y=" + y);
    }

}

posted @ 2020-01-18 22:36  JasonYin2020  阅读(664)  评论(0编辑  收藏  举报