java第四课——运算符

java第四课——运算符_第1张图片

目录

一:算术运算符

1.1基本四则运算符

1.2增量运算符

1.3自增、自减运算符

二:关系运算符

三:逻辑运算符

五:位运算符

5.1按位与

 5.2按位或

 5.3按位取反

5.4按位异或

六:移位运算符

七:条件运算符

八:运算符的优先级 


一:算术运算符

java第四课——运算符_第2张图片

1.1基本四则运算符

        基本四则运算符非常简单,只需注意以下几点即可:

  1. 都是二元运算符,使用时必须有两个操作数;
  2. int/int =int,结果向下取整;
  3. 做除法和取模时,右操作数不能为0;
  4. 两操作数类型不一致时,向类型大的提升。

1.2增量运算符

该种类型运算符操作完成后,会将操纵的结果赋值给左操作数。

1.3自增、自减运算符

对于自增自减运算符,主要注意前置++(--)和后置++(--)的区别即可。只需记住下面这句话即可:

前置++:先使用,后++;                        前置--:先使用,后--;
后置++:先++,后使用;                        后置--:先--,后使用;

具体实例如下:

package test;

public class test {
    public static void main(String[] args) {

        int a = 1;
        System.out.println(a++);   // 注意:后置++是先使用变量原来值,所以这里输出1
        System.out.println(a);     // 此时a++执行完毕,再次输出a的值,输出2

        int b=1;
        System.out.println(++b);    // 注意:前置++是++,后先使用变量的值,所以这里输出2
        System.out.println(b);      // 任然输出2
    }
}

运行结果如下: 

java第四课——运算符_第3张图片
 当我们先运行完表达式,再进行输出时:

public class test {
    public static void main(String[] args) {

        int a = 1;
        a++;
        System.out.println(a);

        int b=1;
        ++b;
        System.out.println(b);
    }
}

 运行结果如下:
java第四课——运算符_第4张图片

结论:

  1. 如果单独使用,【前置++】和【后置++】没有任何区别;
  2. 如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式结束时给变量+1;
  3. 只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改。

二:关系运算符

java第四课——运算符_第5张图片

        其计算结果为true或者false,这个我们容易处理。

三:逻辑运算符

java第四课——运算符_第6张图片

 逻辑运算符主要有三个,运算结果都是 boolean类型。

java第四课——运算符_第7张图片

 对于”逻辑与”和“逻辑或”而言,表达式1和表达式2都是boolean类型的结果。

具体实例如下:

public class test {
    public static void main(String[] args) {


        int a = 1; int b = 2;

        System.out.println(a == 1 && b == 2);   // 左为真  且  右为真  则结果为真
        System.out.println(a == 1 && b >=100);  // 左为真  但  右为假  则结果为假
        System.out.println(a > 100 && b == 2);  // 左为假  但  右为真  则结果为假
        System.out.println(a > 100 && b > 100); // 左为假  且  右为假  则结果为假

    }
}

java第四课——运算符_第8张图片

        注意:短路求值 

对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式。
对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式。
& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算。但与 && || 相比, 它们不支持短路求值。

五:位运算符

java第四课——运算符_第9张图片

        位操作表示按二进制位运算。计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的每一位依次进行计算。

java第四课——运算符_第10张图片

 依次进行说明:

5.1按位与

举例:

public class test{
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a & b);

    }
}

分析: 

java第四课——运算符_第11张图片

运行结果如下:

java第四课——运算符_第12张图片

 5.2按位或

举例:

public class test{
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a | b);

    }
}

分析:

java第四课——运算符_第13张图片

运行结果如下:

java第四课——运算符_第14张图片

 5.3按位取反

举例:

public class test{
    public static void main(String[] args) {
        int a = 10;
        System.out.printf("%x\n", a);
        System.out.printf("%x\n", ~a);
    }
}

分析:
java第四课——运算符_第15张图片

        10按位取反之后变为一个负数,内存中存储的是二进制的补码,所以需要先转化为原码;符号位时1,说明该数为负, 所以通过补码得到源码后,结是-11。

运行结果如下: 

java第四课——运算符_第16张图片

5.4按位异或

举例:

public class test{
    public static void main(String[] args) {
         int a=10;
         int b=20;
         System.out.println(a^b);
    }
}

 分析:
java第四课——运算符_第17张图片

运行结果如下:

java第四课——运算符_第18张图片

六:移位运算符

java第四课——运算符_第19张图片

<<左移:最左侧位不要了,最右侧补0;

>>右移:最右侧位不要了,最左侧补符号位; 

>>>无符号右移:最右侧位不要了,最左侧补0。

         移位运算符用的不多,稍作了解即可,以下是一些注意事项:

 注意:
1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
4. 移动负数位或者移位位数过大都没有意义.
 

七:条件运算符

java第四课——运算符_第20张图片

        当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值。是 Java 中唯一的一个三目运算符, 是条件判断语句的简化写法。

举例:

public class test{
    public static void main(String[] args) {
         int a=10;
         int b=20;
         int c=a>b?a:b;
    }
}

注意:

  1. 表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换。
  2. 表达式不能单独存在,其产生的结果必须要被使用。

八:运算符的优先级 

无需赘述,如有需要,增加括号即可。当然,最近基本的先乘除后加减等,应该知悉。


本节内容到此结束! 

java第四课——运算符_第21张图片

你可能感兴趣的:(Java语法,java,开发语言)