zoukankan      html  css  js  c++  java
  • 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 -->
    等价运算符 == != -->
    按位与 & -->
    按位异或 ^ -->
    按位或 | -->
    条件与 && -->
    条件或 || -->
    三目运算符 ?: <--
    赋值 = += -=等 <--
  • 相关阅读:
    尾递归
    博客搬家 --- CSDN
    sublime text 插件集锦
    chrome 常用插件集锦
    IntelliJ Idea 2017 免费激活方法
    Mac下Java JNI 调C
    webgl学习笔记五-纹理
    webgl学习笔记四-动画
    webgl学习笔记三-平移旋转缩放
    webgl学习笔记二-绘图多点
  • 原文地址:https://www.cnblogs.com/summerday152/p/11835656.html
Copyright © 2011-2022 走看看