1运算符
算术运算符
符号:+ - * /(取整) %取余数
扩展算术运算符
++ -- 自增自减
使用方法:
1)不参与运算,单独使用
a)在数据的前面
b)在数据的后面
结论:
无论++或者--在数据的前面还是后面,都是对当前数据进行自增1或者自减1
2)参与运算
a)在数据的前面
结论:
++或者--在数据的前面,先进行增1或者自减1,然后参与运算!
b)在数据的后面
++或者--在数据的后面,先运算,然后进行自增1或者自减1 !
关系运算符
符号:=
扩展赋值运算符:+= -= == *= /= %=
特点:
举个例子
short s = 1 ;
1)s = s + 1 ;
2)s +=1;
这个1),2)两段代码,哪一个会编译失败,哪一个成功,为什么?
1)这个代码会编译报错,因为存在Java隐式类型转换
byte,shor char 三者不转换,一旦参与运算,优先提升为int,所以
s = s + 1 ;s先提升int和1相加,结果是int类型,而s类型short,无法接收int类型结果
2)s +=1 ; 会成功,
因为扩展赋值运算符+=,-=,*=,/=,%=,有一个特点:隐藏了强转类型转换
s +=1 此时等价于s = (short)(s+1) ;
*/
逻辑运算符
逻辑与&(有0为0 ,全1则1) 逻辑或| (有1为1,全0则0) 逻辑非! (0转1,1转0)
逻辑异或^(相同为0,相异为1)
扩展逻辑运算符:&&双与 ||双或
特点:
连接的表达式如果左边为false,则右边不执行(具有短路效果)
三元运算符(三目运算符)
格式:
(表达式)?执行true的结果:执行false的结果
执行过程:先判断表达式若为true,执行true的结果后面不执行,若为false跳过true执行false结果
比较运算符
符号:>大于 <小于 =等于
位运算符
位运算符号:-----哈希里面涉及到位运算符号
基本的位运算符号:
位与&
位或|
位异或^
反码~
移位符号:
<< 左移 结论
>> 右移 结论
>>> 无符号右移
位异或特点
一个数据被另一个数据位异或两次,其值是它本身
将两个变量的数据进行交换
方式1:
//设一个中间值
class ExchangDemo{
public static void main(String[] args){
int a=3,b=6;
int temp=a;
a=b;
b=temp;
System.out.println(a:+b:+temp:);
}
}
方式2:
//方式2:位异或的特点:一个数据被另一个数据位异或两次,其值是它本身
//左边:a,b,a
//右边:a^b
a = a ^ b ; //在a变量进行 赋值为 a^b
b = a ^ b ; // a ^ b ^b ;
a = a ^ b ; //a ^ b ^a ;
System.out.println("a:"+a) ;
System.out.println("b:"+b) ;
}
}