一、运算符
运算符包括下面这些类型:
1、算术运算符(+,—,*,/,%,++,——):依次为加,减,乘,除,求余数。除最后两种是单目运算符外,其它几种都是双目运算符。前四种运算较简单,不再展开叙述,最后三种运算的定义如下:
Op1 % op2 表示:oPl—int(oP1/op2)*op2,其中ina(a)表示取a的整数部分(a的小数部分总非负)。
Op++ 表示 op = op +1;
Op-- 表示 op = op -1;
2. 关系运算符(>,>=, ==,<=,<,!=),
分别表示大于,大于等于,等于,小于等于,都是双目运算符,即运算结果是布尔型,即为true 或false。
3. 逻辑运算符(&&,|| , ! )
分别表示与,或,非。前两种是双日运算符,最后一种是单目运算符,参与运算的是布尔值,其结果也为布尔值。
4. 位运算符(~,&, |, ^ >>.<<,>>>) 依次为取反,按位与,按位或,按位异或,右移位,左移位,无符号右移位
5. 赋值运算符(=) 赋值操作符,它将等号右边数据的值赋值给左边的变量。
6. 条件运算柠(?:)
条件运算符为三目运算符,其—“般格式为:a>b?a:b
7. 扩展运算符(十=’—=, *= , /= ,%=,&=,|=,^=,>>=,<<=,>>>=)
扩展运算符都是由一个双目运算符和一个等号连在一起组成(注意它们之间不能用空格隔开),以“+=”为例说明这类扩展运算符的用法:
A += B; 表示A = A+B 其它类似。
8 其他运算符,如豆号运算符“,”,分量运算符“·
”。再如实例运算符“instanceof”,内存分配运算符“new”,强制类型转换运算符“(类型)”,方法调用运算符“()”,取数组元素运算符“{
}”。
比如,设t是类Thread的一个实例。
分量运算符:t.name 表示类的实例的调用,又叫点问,(意指通过点的操作符访问类的实例对象)
二、运算符的优先级
优先顺序依次为(1级最优先,余下类推)
第1级:. ()
纪2级:++ -- ! ~ instanceof
第3级:new
第4级:* / %
第5级:+ -
第6级:>> >>> <<
第7织:> < >= <=
第8级:== !=
第9级:&
第10级:^
第11级:!
第12级:&&
纪14级:?:
第13级:||
第15级:= += -= *= /=
第16级:&= != <<= >>= >>>=
记住这些优先次序是困难的,—个较好的方法是使用括号(),比如:
a>b && b>c && c>a 可以用括号写为 ((a>b) && (b>c)) && (c>a)
这样即清晰易懂,也不易出错。
三、表达式
表达式是由操作数和运算符按一定的语法形式组成的符号序列。—个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值。表达式的值还可以用作其他运算的操作数,
形成更复杂的表达式。
表达式的类型由运算以及参与运算的操作数的类型决定,可以是简单类型,也可以是复合类型,如下面的例子所示:
布尔型表达式: x&&y||z;
整型表达式:num1十num2;