java表达式

表达式
定义:有变量,常量,字面值,通过运算符连接而成.
运算符:参与运算的符号.
种类:
1.算术运算符
+ - * / % ++ --
/:当两个操作数都是整数,不能以0作为除数,否则会报错.
如果两个操作数中至少有一个浮点数,除数可以是0或者是0.0,结果是无穷大
Infinity
%:求余运算
第一个操作数除以第二个操作数,得到一个整数结果剩下的就是余数
余数不一定是整数 3.5/2.1=1....1.4
如果两个操作数都是整数,0不能作为除数,否则编译报错.
如果两个操作数至少有一个是浮点数,除数可以为0或0.0 ,结果是一个非数:NaN
++
++a:先加1,再取表达式的值  int a=3;  ++a; 表达式的值4  a=4
a++:先取表达式的值,再加一 int a=3;  a++; 表达式的值3  a=4
总结:
++a:表达式的值和a的值一致.
a++:表达式的值与a的值不一致.表达式的值 --
2.赋值运算符
= += -= *= /= %= ==(不可以,是比较运算符)

3.比较运算符
== >= <= < > !=
4.逻辑运算符
&&
如果两个操作数,第一个操作数为假,结果为假


||
如果两个操作数中,第一个操作数为真,结果为真
&




~


^
5.位运算符
& :两个位如果都为1,结果为1,否则为0

| :两个位如果有一个为1,结果为1,否则为0



~ :非0则1


^:两个位相同为0,不同为1
6.位移运算符
<<:按照操作符右边的位置向左以多少位
>>:("有符号"右移):采用的是"符号扩展":
如果是正数:高位补0;如果是负数,高位补1;
在控制台上输出二进制:Integer.toBinaryString(a);
正数:
int a=3;
0000 0000 0000 0000 0000 0000 0000 0011
int a=5;
源码:0000 0000 0000 0000 0000 0000 0000 0101
补码:0000 0000 0000 0000 0000 0000 0000 0101
int b=-5;
源码:1000 0000 0000 0000 0000 0000 0000 0101
反码:1111 1111 1111 1111 1111 1111 1111 1010
补码:1111 1111 1111 1111 1111 1111 1111 1011
b>>1
补码:11111 1111 1111 1111 1111 1111 1111 101
反码:1111 1 111 1 1111 1111 1111 1111 1111 100
源码:10000 0000 0000 0000 0000 0000 0000 011
>>>(无符号位右移)采用的是"0扩展"
如果是正数,高位补0,如果是负数,高位补0
注意点:int a移位32 a>>32= a>>0 a>>33 = a>>1
long a>>64 = a>>0
对于byte short char 再移位之前先转化成整型,结果还是整型
7.三目运算符(三元)
boolean表达式?值1:值2

你可能感兴趣的:(java)