八种基本类型
byte | 1字节 | -128到127, -27到27-1 | |
---|---|---|---|
short | 2字节 | -215到215-1 | |
int | 4字节 | -231到231-1 | |
long | 8字节 | -263到263-1 | |
float | 4字节 | 单精度 | IEEE 754规范 美国电子电气工程师协会 |
double | 8字节 | 双精度 | |
char | 2字节 | Unicode编码 字符,或字符的整数编码 0到65535,216-1 | |
boolean | 1字节 | 真 true 00000001 假 false 00000000 |
运算
±*/ | ||
---|---|---|
+ | 数学运算、字符串连接运算 | |
% | 取余 | |
== != | 相等、不相等 | |
> >= < <= | 大小比较 | |
&& | 逻辑与,左边是真并且右边是真结果是真,否则是假 短路与,左侧是假,右侧被忽略 | |
|| | 逻辑或,左边是真或者右边是真结果是真,否则是假 短路或,左侧是真,右侧被忽略 | |
! | 非真是假,非假是真 做相反的条件判断 判断“非a”是真,即a是假 if(!a) { … } | |
& | 位与,两位都是1结果是1,否则是0 | |
| | 位或,有1就是1,否则是0 | |
^ | 异或,不同是1,相同是0 | |
~ | 求反,1变0,0变1 | |
>> | 带符号右移位 符号位是0,补0 符号位是1,补1 | |
>>> | 不带符号右移位 不管符号位是0还是1, 都补0 | |
<< | 左移位 | |
++ – | 自增、自减 a=5 print(a++) 1) 取出a的原值等待打印 2) a自增变成6 3) 打印原值5 *) 先取值,后自增 | a=5 print(++a) 1) a自增变成6 2) 取出a的新值等待打印 3) 打印a的新值 *) 先自增,后取值 |
? : | 三项运算 1 ? 2 : 3 1是真,取2的值 1是假,取3的值 | |
= | 赋值运算 左侧必须是变量 | |
+= /= >>= ^= … | 复合的赋值运算符 会自动转型 a = 5 a += 2 //a=a+2 byte a = 5; a = (byte) (a+2); a += 2; a += 3.14; | |
() | 转型运算 |
位运算
00000000 00000000 00000000 01101110
00000000 00000000 00000000 11011011 &
--------------------------------------
00000000 00000000 00000000 01001010
00000000 00000000 00000000 01101110
00000000 00000000 00000000 11011011 |
--------------------------------------
00000000 00000000 00000000 11111111
00000000 00000000 00000000 01101110
00000000 00000000 00000000 11011011 ^
--------------------------------------
00000000 00000000 00000000 10110101
00000000 00000000 00000000 11011011 ~
--------------------------------------
11111111 11111111 11111111 00100100
00000000 00000000 00000000 11011011 >>2
--------------------------------------
0000000000 00000000 00000000 110110
10000000 00000000 00000000 11011011 >>2
--------------------------------------
1110000000 00000000 00000000 110110
00000000 00000000 00000000 11011011 >>>2
--------------------------------------
0000000000 00000000 00000000 110110
10000000 00000000 00000000 11011011 >>>2
--------------------------------------
0010000000 00000000 00000000 110110
10000000 00000000 00000000 11011011 <<2
--------------------------------------
000000 00000000 000000001101101100
l ^
异或,对同一个值异或两次,得到原值
l ~
补码 - 整数正负互换的算法
~a+1 == -a
l 左移位和右移位
左移1位,相当于*2运算
右移1位,相当于/2运算
流程控制
l if
if(){
}else{
}
l switch
switch(变量或表达式) {
case 100:
case 20:
break;
case 45:
case 120:
default:
}
l for (可循环嵌套多层)
For(变量赋值;执行条件;变量修改){
}
l while 先判断后执行
While(执行条件){
}
l do-while 先执行后进行判断
Do{
}while(执行条件)
****** continue 表示跳过该次循环,执行下一次
****** break : 跳出循环结构,若有上一层循环结构,跳到上一层