目录
一、算数运算符
+ - * / % ++ --
注意 10 / 4 = 2 在Java中因为int类型取整位
int a = 10; a = a ++; sout(a) //10
注意 小数取余有公式 a % b; a是小数时公式 a - (int)a / b *b; -10.5 % 3 = -10.5 - (-3)* 3 = -1.5
二、关系运算符
== != > < >= <=
*返回值为Boolean值,a > b 称为关系表达式
三、逻辑运算符
1.定义:
短路与 && 短路或 || 取反 ! 逻辑与 & 逻辑或 | ^逻辑异或
- 短路与&& 逻辑与& 区别:&&短路与如果第一个为false,则第二个条件就不会判断了效率高(开发用这个),&逻辑与都需要判断。
- 短路或 || 逻辑或|| 区别:||短路或如果第一个为true,则第二个条件就不会判断了效率高(开发用这个),|逻辑或都需要判断。
- 非!:!true 为 false 异或^:相同为false,不同为true
2.例题:
int x = 5; int y = 5; if(x++=6 & ++y==6){x=11;} sout(x,y) // 6,5
int x = 5; int y = 5; if(x++=6 && ++y==6){x=11;} sout(x,y) //6,5
int x = 5; int y = 5; if(x++=5 | ++y==5){x=11;} sout(x,y) //11,6
int x = 5; int y = 5; if(x++=5 || ++y==5){x=11;} sout(x,y) //11,5
四、赋值运算符
1.定义:
+= -= *= /= %=
a += 3; ==> a = a + 3;
五、三元运算符
1.定义:
条件表达式 ?表达式1:表达式2; 条件表达式为真,运算结果为表达式1;条件表达式为假,运算结果为表达式2;
表达式1,2可以赋值给变量接收; int a = 1 == 2 ? 1 : 2;
六、运算符优先级(有个印象即可)
七、标识符的命名规则
1.定义:
凡是自己取名字的地方都叫标识符
由26个字母,美元符号,下划线,数字组成,数字不能开头,保留字与关键字不能用,严格区分大小写,不能有空格
- 包名:全部小写,com.baidu.exer
- 类名、接口名:所有单词首字母大写 SchoolStudent
- 变量名:首单词首字母小写,其余单词首字母大写,studentName
- 常量名:所有字母都大写
八、键盘输入语句
1.定义:
Scanner sc = new Scanner(System.in); int a = sc.nextInt();//得到一个整型
九、进制
1.定义:
- 二进制:0 1,满二进一,以0B或0b开头。
- 八进制:0-7,满七进一,以0开头
- 十进制:0-9,满十进一
- 十六进制:0-F,满十六进一,以0X或0x开头
二转十:位数次方 0b1011 = 8+2+1 = 11
八转十:位数次方 0234 = 2*64+3*8+4*1=156
十六转十:位数次方 0x23A = 570
十转二:除二取余 34= 100010
十转八:除八取余 131 = 0203
十转十六:除十六取余 237 = 0xED
二转八转十六:每三位为八进制,每四位为十六进制
八进制、十六进制转二进制:每一位对应三个二进制,每四位对应一个二进制
2.原码、反码、补码:
45 ==> 0010 1101 -45 ==> 1010 1101
正数三码合一,负数的反码等于除符号位全部取反,补码在反码的基础上加1
0010 1101 0010 1101 0010 1101
1010 1101 1101 0010 1101 0011
3 .位运算:
位运算采用的是补码来计算。计算机看到的是原码
- 2&3:2的补码:0000 0010 & 3的补码0000 0011 ==>0000 0010(补码)===>0000 0010(原码)==> 2
- ~-2:-2的补码:1111 1110 取反 0000 0001(补码) ===> 0000 0001(正数,原码等于补码)==> 1
- 1 >> 2 等于 1 / 2 / 2 = 0(小数就为0) 15 >> 2 = 15 / 2 / 2 = 3
- 1 << 2 等于 1 * 2 * 2 = 4 4 << 3 = 4 * 2 * 2 * 2 = 32