前言
由于Java的运算符大部分和C语言类似,所以这里只会提及与C语言不同的要点~~
算术运算符
基本四则运算
和C语言一样,Java也有+ - * / %(加、减、乘、除、取模)的算术运算符。
注意Java的取模运算符(%)可以用来进行小数的取模操作。但是C语言不支持,在实际应用中,我们也很少使用小数的取模运算~~
除法和取模运算时,右操作数不能为0,否则会报错,这也是和数学一样的规则。
在运算的时候,如果操作数的类型不同,会往大的数据类型去进行提升。
像这种的运算,a 会提升到long类型,之后a+b的结果就是long类型,我们前面知道不同的数据类型是不能相互赋值的。
增量运算符
和C语言用法一样,有+=,-=,*=,/=,这里要注意这个运算符如果操作数的数据类型不同,是会发生强制类型转换的(这个转换是自动帮你弄好的),所以下面的代码不会因为数据类型不同不能进行赋值而报错!! 大家稍微注意一下就可以了 ~ ~
自增运算符
和C语言的用法一样,–,++,注意前置和后置的区别就可以了。
关系运算符
==,>,<,>=,<=
这些运算符用在条件表达式(也可以叫做布尔表达式)居多,运算之后的结果是布尔值(true 或者 false)
逻辑运算符
&&(逻辑与),|| (逻辑或),!(逻辑非)这几个运算符只能和布尔表达式搭配
布尔表达式1 && 布尔表达式2,布尔表达式1 || 布尔表达式2,!布尔表达式
这里要注意&& 和 || 和C语言是一样的,是有短路的情况,&&如果前面的表达式为false,就不会去计算后面的表达式,如果 || 前面的表达式为true就不会计算后面的表达式~~
程序没有抛出异常,说明没有计算后面的表达式~~
这里要注意 !(逻辑非) 在Java中只能用在布尔表达式(条件表达式)中,可以将表达式的值右false转变为true,或者由true转变为false~~
位运算符
首先和C语言是一样的用法,并且都有&(按位与),|(按位或),^(按位异或),~(按位取反),这里不再赘述,如果不清楚的可以翻看我的博客http://t.csdnimg.cn/KVZz7
特殊情况,& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值.
程序抛出异常,说明后面的表达式进行了计算~~
移位运算符
和C语言一样有 << 和 >>,用法是一样的,但是Java中多了一个移位运算符 >>> (无符号的右移),就是每向右移动1位,首位就补0,所以是无符号的右移~~
这里也有<<=,>>=,>>>= 的运算符的~~
条件运算符(三目运算符)
表达式1?表达式2:表达式3
这里要注意的是,在Java中,使用这个运算符时一经使用必须要有变量来接收结果!!!
表达式2和表达式3的结果要是同类型的,除非能发生类型隐式类型转换~~
不仅如此,表达式返回的结果也必须要有变量来接收!!!
运算符的优先级
和C语言一样,还是一句话,你可以不背优先级,不确定哪个先计算,你就加括号保证你想要的运算顺序就可以了~~