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的一个实例
-
== !=
-
-
逻辑
- &
- ^
- |
- &&
- ||
-
三目::?
-
赋值:= += -= *= /= %= &= |= ^= <<= >>= >>>=

浙公网安备 33010602011771号