• java中的运算符


      

    算术运算符

    • +
    • -
    • *
    • /
    • ++
    • --

    ++出现在变量后,会先做赋值运算,再自加1

    1 1 int m = 20;  
    2 2 int n = m++;
    3 3 //最后结果 n = 20  m = 21

    ++出现在变量之前,会先进行自加1的运算,然后再赋值

    1 int x = 50; 
    2 int y = ++x;
    3 //x = y = 51
    4 
    5 int num = 10;
    6 num++;    
    7 ++num;  
    8 //这两条语句是一样的 都是一条语句,";"分号结束

    注解:++无论出现在变量前还是后,只要++运算结束,";"分号结束,一定会自加1

    一个例子:

    1 int i = 0;  
    2 i = i++;  
    3 System.out.println(i); //运行结束后,i=0
    4 //i = i++底层实现
    5 int temp = i;
    6 i = (int)(i+1);
    7 i = temp;

    关系运算符

    • >
    • >=
    • <
    • <=
    • ==
    • !=

    注意:所有的关系运算符的运算结果都是布尔类型,不是true就是false,不可能是其他值

    逻辑运算符

    符号解释
    & 逻辑与(并且)
    | 逻辑或(或者)
    ! 逻辑非(取反)
    && 短路与
    || 短路或
    ^ 异或(相同为false,不同为true)

    注意:逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型

    & 两边都是true,结果才是true。

    | 一边是true,结果就是true。

    "&&" 和 "||" 实际上和 "& "和 "|" 运算结果完全相同,区别在于:&& 和 || 有短路现象。

    左边的为false的时候:&& 短路了(后面的不执行)

    左边为true的时候:|| 短路了。(后面的不执行)

    注解:效率方面来说&&比&效率高

    位运算符

    符号解释
    &
    |
    ^
    << 左位移 注解:二进制左移多少位,每左移一位便乘以2(在一定范围内),不管是正数还是负数
    >> 右位移(有符号右移) 注解:二进制右移多少位,每右移一位便除以2(在一定范围内),最高位是什么就用什么补,如:最高位为1则用1补,为0用0补
    >>> 无符号右移 注解:最高位无论为什么都用0补

    注解: &、|、^:前后两者都是 boolean类型值时,此符号为逻辑运算符,前后两者都是数值时,此符号为 位运算符

    例子:

    用最有效率的方式计算出4*8的结果

    使用位运算(而位运算cpu直接支持的,效率最高)

    2<<5或者4<<3

    赋值运算符

    • =
    • +=
    • -=
    • *=
    • /=
    • %=

    注解:使用扩展运算符的时候,永远都不会改变运算结果类型

    例子:

    1 byte x = 100; // byte最大值127
    2 x += 1000; // 编译可以通过,x变量还是byte类型,只不过损失精度
    3 x += 1000; 
    4 //底层为:x = (byte)(x + 1000);
    5 int i = 10;
    6 i += 10; // 底层:i = (int)(i + 10); 

    条件运算符(三目运算符)

    语法格式:

      布尔表达式 ? 表达式1 : 表达式2

    布尔表达式为true,选择表达式1作为结果。反之选择表达式2作为结果

    小知识

    例子:

    int a=5;
    System.out.println("a="+((a<5)?10.9:9))//结果为9.0
    //注解:值1和值2如果类型不一样,哪个大就向哪个转型

    例子:

    char x='x';
    int i=10;
    System.out.println(false?i:x);//结果为120
    System.out.println(false?100:x);//结果为x
    
    System.out.println(true?x:65535);//结果为x
    System.out.println(true?x:65536);//结果为120

    注解:使用三目运算符 char和数字直接比较 当数字(int类型)不超过65535时输出是char类型'x',超过65535时输出的是int类型

    字符串连接运算符

    + 运算符

    1. ’+‘ 运算符在java中有两个作用(作用1:求和, 作用2:字符串拼接)

    2. 当 + 运算符两边都是数字类型的时候,求和,当 + 运算符两边的任意一边时字符串类型,那么这个+会进行字符串拼接操作

      注解:字符串拼接完成之后的结果还是一个字符串

  • 相关阅读:
    vue+sass 下sass不能运行问题
    Servlet3.0的新特性
    Servlet监听器
    Servlet过滤器
    会话跟踪
    Servlet的应用
    Servlet概述
    《南怀瑾讲述99个人生道理》——刘清海编著
    Web应用程序简介
    JDBC学习总结(五)
  • 原文地址:https://www.cnblogs.com/thesky-wfei/p/13416202.html
Copyright © 2020-2023  润新知