你的位置:首页 > Java教程

[Java教程]Java 基础入门随笔(3) JavaSE版


        上一节写了一些运算符的注意事项,这节开头依然是对运算符的一些注意点的阐述!

  比较运算符除了>、>=、<、<=、==、!=之外需要注意instanceof:检查是否是类的对象,例如:”Hello” instanceof String ,返回结果位true。

1.逻辑运算符

       &(与)的运算特点:运算的两边只要有一个是false,结果肯定是false,只有两边都为true,结果才true;

       |(或)的运算特点:运算的两边只要有一个是true,结果肯定是true,只有两边都为false,结果是false;

       ^(异或)的运算特点:运算的两边结果如果相同,结果是false,两边的结果不同,结果是true;

      !(非)的运算特点:判断事物的另一面;

       &&(短路 双与)的运算特点:与&运算基本一致,只是&&当左边为false时,右边不参与运算的,而&两边都得运算;

        ||(短路 双或)的运算特点:与|运算基本一致,只是||当左边为true时,右边不参与运算的,而|两边都得运算;

2.位运算符

        &(与位运算符):运算特点与逻辑运算符的&一样,只是这里针对二进制的位运算,例如:6&3=2;(二进制原理:110&011=010),任何数与位为1取&运算都为原来数(作用取某些有效位数);

        | (或运算符):运算特点或逻辑运算符的&一样,只是这里针对二进制的位运算,例如:6|3=7;(二进制原理:110|011=111);

        ^(异或运算符):运算特点与逻辑运算符的^一样,只是这里针对二进制的位运算,例如:6^3^3 = 6,注:当一个数异或运算同一个数两次,结果还是这个数本身(作用为加密的效果)

       ~ (反码运算符):运算特点与符逻辑运算符中的!一致的。

       <<(左移运算符):左移几位其实就是该数据乘以2的几次方。可以完成2的次幂运算!

        >> (右移运算符) : 右移几位其实就是该数据除以2的几次幂。对于高位出现的空位,原来高位是什么就用什么补这个空位!

      >>>(无符号右移运算符):数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。

练习:

1.//最有效率的方式算出2乘以8等于几? 答案:System.out.println(2<<3);

2.对两个整数变量的值进行互换 ? 

  答案:

开发时,使用第三方变量的形式,因为阅读性强。
        int c ;
        c = a;
        a = b;
        b = c;

这种方式不要用,如果两个整数的数值过大,会超出int范围,会强制转换。数据会
变化。

        a = a + b; //a = 3 + 5;a = 8;
        b = a - b; //3+5-5 = 3;b = 3;
        a = a - b; //3+5-3 = 5;a = 5;

面试的时候用。
        a = a ^ b; //a = 3 ^ 5;
        b = a ^ b; //b = (3^5)^5; b = 3;
        a = a ^ b; //a = (3^5)^3; a = 5;