JavaStudyDay02—Java基础语法(2)

Java基础语法(2)

算数运算符

+

  • 注意:对字符串来说,+操作是字符串的拼接,出现多个+时,从左到右依次执行

-

*

/

  • 注意:但除数与被除数都是整数时,结果也为整数(小数部分直接舍去)
  • 整数除0将会产生一个异常,而浮点数除0,结果为无穷大或非数值(NaN)

%

  • 注意:取余运算只能用于整数之间,结果的符号取决于符号的左边的数的符号

自增自减运算符

自增运算符

  • 前置自增
  • 后置自增

自减运算符

  • 前置自减
  • 后置自减

说明

  • 自增自减运算符可用于数值型变量,包括整数,浮点数
  • 对于单独运算来说,前置和后置没有区别
  • 在表达式中,前置就是变量先加一或减一,然后再参与运算,后置就是先运算,后变量加一

数学函数及数学常量

使用之前需要导包:import static java.lang.Math.*;

  • 如果没有导包,就需要在函数前加上Math.

数学函数

  • 开方

    • sqrt(x)
  • 幂运算

    • pow(x,a)

      • 代表X^a
  • 取整

    • 向零取整

      • fix(x)
    • 向负无穷取整

      • floor(x)
  • 整数取模

    • floorMod(a,b)

      • 注意:结果为a/b,符号取决于b

      • floorMod(a,b)与a%b的比较

        • 取余:a%b=a-fix(a/b)*b
        • 取模:floorMod(a,b)=a-floor(a/b)*b
  • 三角函数

    • sin(x)
    • cos(x)
    • tan(x)
  • 反三角函数

    • atan(x)

      • x为直线斜率
      • 返回的是弧度值,范围为(-Π/2,Π/2)
    • atan(y,x)

      • x 是临边边长,而 y 是对边边长
      • 返回的是弧度值,范围为(-Π,Π]
  • 指数函数

    • exp(x)
  • 对数

    • log(x)

      • 相当于ln(x)
    • log10

      • 10为底数
    • 注:计算不同的底数的对数时用换底公式

数学常量

  • Math.PI
  • Math.E

赋值运算符

=

+=

-=

*=

/=

%=

常量优化机制

  • 常量优化机制的范围:给byte,short,char三种变量用常量表达式赋值时,程序在编译时就会把常量表达式的值算出来,然后判断是否在所赋值变量的的类型所能表示的范围内,如果在,则编译通过,如果不在,则编译报错
  • 常量表达式中地常量可以是byte,short,char,int,但变量的类型只能是char,byte short
  • String的常量优化机制(暂时不讲)

注意

  • 所有的赋值运算符都会自动转换数据类型

关系运算符

==

!=

>

>=

<

<=

逻辑运算符

&

  • 两边的条件都会判断

&&

  • 短路与,如果左边的条件为假,则右边的条件就不会判断了

|

  • 两边的条件都会判断

||

  • 如果左边的条件为真,则右边的条件就不会判断了

!

三元运算符

语法

  • 逻辑表达式?表达式1:表达式2

位运算符

&

|

~

^

  • 重要性质

    • a^a=0
    • a^0=a
  • 此运算符可用来交换两个数,而不需要中间变量

    • eg:交换a,b两个整数;a=ab;b=ab;a=a^b

>>

  • 用符号位填充高位

  • 右移几位就乘以2的几次方

    • eg:a>>b=a*pow(2,b)

<<

  • 用0填充低位

  • 左移几位就除以2的几次方

    • eg:a<<b=a/pow(2,b)

>>>

  • 与>>相似,区别在于>>>用0填充高位

说明

  • 位运算符仅用于整型变量

  • 移位运算符法的右操作数要完成模32的运算,除非左操作数是long类型,此时要完成模64的运算

  • 在位移运算a<<b或a>>b的计算中

    • a为正数

      • 实际移动的位数为a%32
    • a为负数

      • 实际移动的位数为32+a%32
    • 说明

      • 若a为long型,则上式中32需改为64

优先级

单目乘除位关系,逻辑三目后赋值

  • 最高优先级:()[] .

    • 注:.表示方法调用,[]表示数组

    • ()可以改变运算优先级

  • 单目:!~ ++ -- + - () new

    • 注:()为强制类型转换
      • -为正负号
  • 乘除:* / % + -

    • 注:+ - 为算数运算符
  • 位:<< >> >>>

  • 关系

    • < <= > >= instanceof

      • 注:a instanceof b用于判断对象a是否是类b的一个实例
    • == !=

  • 逻辑

    • &
    • ^
    • |
    • &&
    • ||
  • 三目::?

  • 赋值:= += -= *= /= %= &= |= ^= <<= >>= >>>=

posted @ 2021-02-04 17:59  欧阳⭐天星  阅读(78)  评论(0)    收藏  举报