运算符
基础运算符比较常规 + – * / 代表加减乘除,以及整数的求余用 % 来表示
数学函数 与常量
Math 类包含各种数学函数 比如求一个数值的平方根
double x = 4; double y = Math. sqrt (x); // 对 x 开方 System.out.println(y); // 2.0
幂运算 Math.pow(参数,幂次数) Math 还提供了一些常用的三角函数 Math.sin Math.cos Math.tan Math.atan Math.atan2 指数函数 以及它的 反函数 自然对数以及以10为底的对数 Math.exp Math.log Math.log10
Java 还提供了两个用来表示 π 和 e 常量的近似值
Math.PI Math.E
在运算结果比运行速度更重要的时候 应该使用 StrictMath 这个库
数据类型之间的合法转换
实心箭头表示 无信息丢失的转换, 虚线箭头代表精度损失的转换

强制类型转换
上图所示的 虚线精度损失需要通过强制类型转换(cast) 实现
double x = 9.997 int nx = (int) x;
由于强制转换类型 假设超出了目标类型的表示范围,结果会是截断成一个完全不同的值.
(byte) 300 实际值为 44
结合赋值和运算符
x += 4; 等价于 x = x + 4; 类型与左侧 操作数 不同时会发生强制类型转换
int 1; x + 3.5 // 4.5 强制转换了类型
自增与自减运算
前缀与 后缀的区别
int m = 7; int n = 7; int a = 2 * ++m // a is 16, m is 8 int b = 2 * n++ // b is 14 , n is 8
在表达式中谨慎使用自增/自减运算
关系运算和 Boolean 运算符
== 相等 != 不等 < > <= >= &&(与运算 运算符两侧运算均成立则为true 其他为false) || 或则表示 运算符两侧其中有一个成立就返回 那个值 从左至右判断 三元操作符 ? Java x < y ? x:y // 这里如果 x比y小这个情况为真 则返回 x,不然则返回y ### 位运算符 & | ^ ~ and or xor(exclusive + OR 异或运算) not
括号与运算级别
从左至右 有括号先运算括号里面的


枚举类型
变量的取值只能在一个有限集合内 enum Size {S,M,L}; 现在可以直接声明这个枚举类型的变量
Size s =Size.M; // 只能给定 s 某个 枚举值 也可以是 null 表示这个变量没有设置任何值