1.运算符(operator)
Java 语言支持如下运算符:
- 算术运算符: +,-,*,/,%(取余数),++,–
- 赋值运算符 =
- 关系运算符: >,<,>=,<=,==,!= instanceof
- 逻辑运算符: &&,||,!
- 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
- 条件运算符 ?:
- 扩展赋值运算符:+=,-=,*=,/=
二元运算符
整数运算:
如果两个操作数有一个为long, 则结果也为long
没有long时,结果为int。即使操作数全为shot,byte,结果也是int.浮点运算:
如果两个操作数有一个为double, 则结果为double.
只有两个操作数都是float, 则结果才为float.
取模运算
其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.000000004
要点: 负数%负数=负数;
负数%正数=负数;
正数%负数=正数;注:一般都是正整数运算,不用考虑这么细!
一元运算符(++, - -)
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c = ++a; //执行完后,c=5。先自增,再给c赋值
注意:
//java中的乘幂处理:
int a = 3^2; //java中不能这么处理, ^是异或符号。
double b = Math.pow(3, 2);
//Math类提供了很多科学和工程计算需要的方法和常数。
布尔逻辑表达符
逻辑与:&&和&, 逻辑或:||和|, 逻辑非:!。
逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。
逻辑与只要有一个为false, 则直接返回false.
逻辑或只要有一个为true, 则直接返回true;
boolean c =1>2&&2>(3/0); (除数为0编译能通过,执行是抛出异常)
位运算符
~--取反(注意符号问题)
&--按位与
|-- 按位或
^-- 按位异或
0 1 0 1
1 0 0 1
- - - -
1 1 0 0
<<:左移运算符 //左移一位相当于乘2
>>:右移运算符 //右移一位相当于除2取商。
>>>:无符号移位运算符
int a = 3*2*2;
int b = 3<<2; //相当于:3*2*2;
int a = 12/2/2;
int b = 12>>2;