初学者
一.运算符
1、算术运算符(9个)
算术运算符用于在数学表达式中,他们是在代数中使用的方法相同。
- 单目(只需要一个变量):+(取正)-(取负) ++(自增1) 1. -(自减1)
- 双目(需要两个变量):+ 1. * / %(取余)
- 三目(需要三个变量):a>b?true:false
说明:
当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是 “>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
2、关系运算符(6个)
关系运算符用来比较操作数.
- 等于符号:==
- 不等于符号: !=
- 大于符号:>
- 小于符号:<
- 大于等于符号: >=
- 小于等于符号: <=
3、逻辑运算符和位运算符
逻辑运算符用来描述与、或、非逻辑关系.
- AND(与) &
- OR(或) |
- XOR(异或) ^
- Not(非) !
- AND(短路与) &&
- OR(短路或) ||
a.逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型 。
b.“&”和“&&”的区别在于,如果使用前者连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用后者连接,当“&&”的左边为false,则将不会计算其右边的表达式。“|”和“||”的区别与“&”和“&&”的区别一样。
运算规则:
&运算规则:
true&true=true true&false=false false&true=false false&false=false
见false为false。
|运算规则:
true|true=true true|false=true false|true=true false|false=false
见true为true。
!运算规则:
!true=false !false=true
非否即是,非是即否。
^运算规则:
true^true=false true^false=true false^true=true false^false=false
相同则为false,不同则为true。
&&运算规则:
对于&&而言,如果前边的表达式的结果为false,则后边的表达式就不再运算。
||运算规则:
对于||而言,如果前边的表达式的结果为true,则后边的表达式就不再运算。
注意:短路特性可以提高代码的运算速度。
4、位移运算符
位移运算符可以应用到整数类型,长型,整型,短整型,字符和字节。它作用于位,并执行逐位操作.
&(与)
|(或)
^(异或)
<< 带符号左移
'>>'带符号右移
-
'>>>' 无号右移
注:位运算符可以用来进行2的倍数有关的快速计算
原、反、补码
数据在计算机中是以补码形式来存储的。最高位是一个符号位:如果是正数,最高位为0,如果是负数,最高位为1。对于正数而言,原反补三码一致。负数的反码是在原码的基础上,最高位不变,其余位0变1,1变0,负数的补码是在反码的基础上+1。
-
- 00000000 00000000 00000000 00000110—原码/反码/补码
- -6 1. 10000000 00000000 00000000 00000110—原码
- 11111111 11111111 11111111 11111001—反码
- 11111111 11111111 11111111 11111010—补码
- 11111111 11111111 11111111 11101101—补码
- 11111111 11111111 11111111 11101100—反码
- 10000000 00000000 00000000 00010011—原码— -19
5、赋值运算符
赋值运算符是为变量赋值所使用.
- = ;
- += ;
- -= ;
- *= ;
- /= ;
- %= ;
- &= ;
- ^= ;
- |= ;
- <<= ;
-
=;
6、其它运算符
instanceof
instanceof运算符只用于对象引用变量,检查对象是否为特定类型(类或接口类型)。
三元
三元运算符又叫三目运算符,还可叫做条件运算符。
格式
逻辑值 ? 表达式1 :表达式2;
int i = 4, j = 7;
int k = i > j ? i : j;
System.out.println(k);//结果为j。
执行顺序:
如果逻辑值为true的话,执行表达式1,;反之执行表达式2。
①三元表达式在运算完成之后必须有一个结果。
//不允许,运算完成之后,没有结果。
A > b ? System.out.println( a ) : System.out.println( b );
②表达式1和表达式2的结果必须是相同类型或相容。
double d = a > b ? a * 2 : a * 2.5;
③在三元表达式形成嵌套的时候,尽量添加()来提高代码的可读性
int max = a > b ? ( a > c ? a : c ) : ( b > c ? b : c );