1.基本运算符
1).在Java中,当采用/运算的两个操作数都是整数时,表示整数除法;否则表示浮点除法。整数的求余操作用%表示。
2).整数被0除,将会产生一个异常,而浮点数被0除将会得到无穷大或NaN结果。
3).如果将一个类标记为strictfp,这个类中的所有方法都要使用严格的浮点计算。
2.自增运算符与自减运算符
n++:先使用n原来的值进行计算,再给n+1
++n:先给n+1,再进行计算
eg:int m = 7;
int n = 7;
int a = 2 * ++m; //(a = 16, m = 8)
int b = 2 * n++; //(b = 14, n = 8)
3.关系运算符与boolean运算符
== != >= <= > <
&&(若第一个条件不满足,就不用再验证第二个条件了)
|| ! x<y?x:y(三元运算符)
4.位运算符:&(与) |(或) ^(异或) ~(非)
1)&和|运算符应用于布尔值,得到的结果也是布尔值。这两个运算符与&&和||非常相似,只是它们要计算两个操作数的值。
2)>>>运算符将用0填充高位,>>运算符用符号位填充高位,没有<<<运算符。
5.数学函数与常量
1)计算一个数值的平方根。可以用sqrt方法:
double x = 4;
double y = Math.sqrt(x);
System.out.println(y); //prints 2.0
2)在Java中,没有幂运算,因此要借助于Math类的pow方法:
double y = Math.pow(x, a); 将y的值设为x的a次幂(),pow方法有两个double类型的参数,其返回结果也为double类型。
3)Math类提供了一些常用的三角函数:Math.sin Math.cos Math.tan Math.atan Math.atan2
4)Math类还提供了一些常用的反函数(Math.exp) 自然对数(Math.log)
5)Java还提供了两个用于表示π和e常量的近似值:Math.PI Math.E
6.数值类型之间的转换:
当使用两个数值进行二元操作时(例如n+f,n是整数,f是浮点数),先要将两个操作数转换为同一种类型,然后再进行计算。
1)如果两个操作数中有一个是double型的,另一个操作数就会转换为double型的。
2)否则,如果其中一个操作数值float类型,另一个操作数将会转换为float类型。
3)否则,如果其中一个操作数是long类型,另一个操作数会转换为long类型。
4)否则,两个操作数都将会被转换为int类型。
7.强制类型转换:
1)强制类型转换的语法是:在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。
eg:double x = 9.997;
int nx = (int) x; //此时nx为9
2)强制类型转换通过截断小数部分将浮点值转换为整型。
3)如果要对浮点数进行舍入运算,使用Math.round()方法。
eg: double x = 9.997;
int nx = (int) Math.round(x); //此时nx为10
4)当调用round的时候,仍然需要使用强制类型转换(int)。由于round方法返回的结果是long类型,有信息丢失的可能,所以只有使用显式的强制类型转换才能将long类型转 换成int类型。
5)不要在boolean类型与任何数值类型之间进行强制类型转换,这样可以防止发生错误。
8.括号与运算符级别
1)如果不使用圆括号,就按照给出的运算符优先级次序进行计算,同一级别的运算符按照从左到右的次序进行运算。
2)&&的优先级比||高。即a && b || c 等价于 ( a && b ) || c.
3)+= 是右结合运算符。 即 a += b += c 等价于 a += ( b += c ).
9.枚举类型
1)变量的取值只在一个集合内时使用枚举。比如衣服的尺码大小(大,中,小)。
2)可以自定义枚举,枚举类型包括有限个命名的值。(例如:enum Size { SMALL, MEDIUM, LARGE, EXTRA_LARGE}; 现在可以声明这样一种类型的变量: Size s = Size.MEDIUM; Size类型的变量只能存储这个类型声明中给定的某个枚举值,或者null值,null表示这个变量没有设置任何值。)。