Java基础语法(三)

运算符

Java中运算符可以分为算术、赋值、比较、逻辑、位和类型相关运算符等多种,本篇一一做出总结。

算术运算符

算术?无非就是加减乘除嘛,除此之外还有呢。

  • +:除了可做基本数据类型的加法,还可以作为字符串的拼接符。

  • /:除法也相对特殊,用作整数计算,且除数不能是0,结果也为整,就算取不到整数也得强行截断。如果至少有一个浮点数,那么就是自然除法,而且还会有无穷和非数的情况出现。

  • %:求余运算,涉及到除法运算需要注意除法运算相关事项。

  • ++:自加,只能操作一个操作数或者单个数值类型的变量(变量!!!)。

    ++mm++的区别:

    1. ++m是先把m加上1,然后再把结果放入表达式中进行计算。

    2. m++实先把m的值放到表达式中计算,然后给m值加1。

      int a =5;
      int b = a++;//b=5,之后a++,变为6
      int c = ++a;//c=6+1=7
      System.out.println(a+","+b+","+c);
      
  • --:同理++

Java中可以借助java.lang.Math类中的方法完成相对麻烦的数学运算,如乘方、开方等运算。

import static java.lang.Math.*;

赋值运算符

为变量指定变量值。就是把什么东西装到容器里面。

  • Java与其他语言类似,也是用=进行赋值操作。

    double pi = 3.14;
    
  • 赋值也可以将一个变量的值赋给另外一个变量。

    int a = 5;
    int b = a;
    
  • 可以一次为多个变量赋值,但可读性较差。

    扩展赋值运算符

    隐含强制转换类型,更具健壮性。

    tips:a+=5;与a=a+5;有些时候代表的并不相同。

    byte a = 4;
    a = a + 5;//报错,因为左边为byte,右边自动上升为int。
    byte b = 4;
    b += 5;//正常,因为把b设置为(byte)(b+5)
    

比较运算符

就是比大小嘛,出来是个布尔值。

  • ==:
    • 如果比较的是两个数值类型的数,只要值相等,就返回true,哪怕类型不相同。5.0==5;
    • 如果都是引用类型的话,必须指向同一对象才会返回true。
    • boolean类型也可以比较。true == false;,返回false。

逻辑运算符

用来操作两个布尔型的变量或者常量。

  • &&&:都表示着与逻辑,全真为真,有零出零。前者&&代表“短路与”,即如果判断的第一个操作数或者表达式为false,就不再对后面的操作数求值,而是直接返回false。
  • |||:都表示着或逻辑,有真出真,全零出零。前者代表“短路或”,同理于“短路与”。第一个为true,直接true,根本不管后面的相当于短路掉了。

位运算符

处理整型类型时,直接对组成整型数值的各个位完成操作。

  • &是按位与,|是按位或,~是按位非。
  • ^是按位异或,两位相同为0,不同为1。
  • <<是左移,>>是右移。
  • >>>是无符号右移,没有<<<这个符号。
    • >>>会用0填充高位,前者则是用符号位填充。
    • 对于比int类型小的操作数,总是先转换为int再移位。
    • 对于int类型a>>b,如果b>32,则移位的位数为b%32,long类型同理。
    • 移位时,如果二进制码没有发生有效数字丢失的情况,左移n位等价于乘上2的n次方,右移则是除以2的n次方

三目运算符

直接上例子!

String a;
a = 2>1 ? "2比1大":"2比1小";
System.out.println(a);
  • 表达式 ? 成功语句 :失败语句;是基本定义式子。
  • 表达式为true,执行成功语句,false则执行失败语句。
  • 三目运算符不支持多个语句,但可以嵌套使用。

运算符优先级和结合性

运算符优先级自上而下逐级递减。

运算符说明 Java运算符 结合顺序(<--表示从右到左)
分隔符 . [] () {} , ; -->
单目运算符 ++ -- ~ ! <--
强制类型转换运算符 (type) -->
乘,除,求余 * / % -->
加法,减法 + - -->
移位运算符 << >> >>> -->
关系运算符 < <= >= > instanceof -->
等价运算符 == != -->
按位与 & -->
按位异或 ^ -->
按位或 | -->
条件与 && -->
条件或 || -->
三目运算符 ?: <--
赋值 = += -=等 <--
posted @ 2019-11-11 15:50  天乔巴夏丶  阅读(190)  评论(0编辑  收藏  举报