- 基本运算符
一、 算数运算符: +、-、、/、%、++、--
二、关系运算符:>、<、>=、<=、==、!=
三、逻辑运算符:!、&&(&)、||(|)、^
四、位运算:~、&、|、^、<<、>>、>>>
五、赋值运算:简单赋值(=)、复合算术赋值(+=、-=、=、/=、%=)和复合位运算赋值(&=、|=、^=、>>=、<<=、>>>=)
一、 算数运算符
分为单目运算符和双目运算符;
单目运算符:只有一个操作数;(+(正)、-(负)、++、--)
双目运算符:有两个操作数,运算符在两个操作数之间。( +(加)、-(减)、*、/、%、)
注:
1.“+”可以用来链接字符串。如,"abc"+"123"的结果为"abc123"。
2.两个整数相除取其整数部分。如,3/2结果为1而非1.5。
3.取余运算(%),在java语言中,既可以对整数取余,也可以对小数取余。如,30%7=2,16.3%5=1.3.
4.”++“和”--“运算符,只允许用于数值类型的变量,不允许用于表达式中;
"++"和”--“可以用于数值变量之前或者之后;
两处使用差别:
”++“和”--“用于数值变量之前,在赋值操作中,先对被”++“或”--“操作变量值先加1或者先减1,然后在进行其他的操作;
"++"和”--“用于数值变量之后,在赋值操作中,先用被”++“或”--“的操作变量值进行其他的操作,然后在对其值加1或者减1。
二、关系运算符
关系运算符用于判断两个操作数的等价关系和大小关系,得到的结果为布尔型(boolean),取值为true或false。
包括:>、<、>=、<=、==、!=
三、逻辑运算符
主要包括:!(逻辑非)、&(逻辑与)、|(逻辑或)、^(逻辑异或)、&&(短路与)、||(短路或)
- 注:
1.逻辑运算得到的结果为布尔型
2.两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。
&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。
对于&来说,如果左侧条件为false,也会计算右侧条件的值,而对于&&来说,如果左侧的条件为false,则不计算右侧的条件,这种现象被称作短路现象。
3.逻辑异或:相同为false,相反则为true。
四、位运算符
位运算符用来对 整形或字符型 数据的二进制位进行运算,运算结果为一个整数
~(按位取反)、&(按位与)、|(按位或)、^(按位异或)、<<(左移位)、>>(右移位)、>>>(无符号右移)
注:因为数据在计算机内存中是以二进制的形式存放的,因此在使用位运算符时一定要将数据转换成二进制表现形式
注:当参与运算的操作数为布尔型时,运算符&、|、^是逻辑运算符,
当参与运算的操作数为整形或字符型时,运算符&、|、^是位运算符。
五、赋值运算
赋值运算符(=)的功能是将运算符“=”右侧的值赋给左边的变量
- “=”左侧必须是一个已经声明过的变量,而不允许是常量或表达式。
扩展赋值运算符:
复合算术赋值(+=、-=、*=、/=、%=)和复合位运算赋值(&=、|=、^=、>>=、<<=、>>>=)
六、条件运算符
条件运算符是java语言中的唯一一个三目运算符
一般形式: <表达式1> ?<表达式2> : <表达式3>
含义:先计算<表达式1>的值,
当<表达式1>的值为true时,则将<表达式2>的值作为整个表达式的值;
当<表达式1>的值为false时,则将<表达式3>的值作为整个表达式的值。
其中,表达式1必须为boolean型
七、表达式
当表达式含有多个运算符时,系统会按照运算符的优先级来控制运算执行顺序。
同级的运算符连续出现时按照约定的结合方向进行运算。如,运算符“+”的结合方向为从左到右,因此:
String s1 = 3+5+"welcome";//运行结果为"8welcome"
String s1 = "welcome"+3+5;//运行结果为"welcome35"