- 标识符
只要自己可以起名的地方都叫标识符。
命名规则:
- 由26个英文字母大小写、0-9、_或$组成。
- 数字不可以开头
- 标识符不能包含空格
- 严格区分大小写
命名规范:
- 包名:所有字母都小写
- 类名/接口名:多单词组成时,所有单词的首字母大写-大驼峰命名
- 变量名/方法名:多单词组成时,第一个单词首字母小写,第二个单词开始首字母大写-小驼峰命名
- 常量名:所有字母大写,多单词之间用下划线隔开_
- 关键字所有字母都是小写
- 保留字:现有java版本没有使用,以后可能会被用做关键字
- 进制介绍
整数有4种表现形式:
- 二进制:0,1,满2进1,以0b或0B开头
- 十进制:0-9,满10进1
- 八进制:0-7,满8进1,以数字0开头
- 十六进制:0-9,A-F,满16进1,以0x或0X开头表示,A-F不区分大小写
- 进制转换
- 十进制转二进制规则:将十进制数不断除以2,直到商为0为止。然后将每步得到的余数倒过来就是对应的二进制。
- 十进制转八进制:将十进制数不断除以8,直到商为0为止。然后将每步得到的余数倒过来就是对应的二进制。
- 十进制转十六进制:将十进制数不断除以16,直到商为0为止。然后将每步得到的余数倒过来就是对应的二进制。
- 位运算
~
:按位取反,0变1,1变0
&
:按位与,全为1结果为1
|
:按位或,有一个为1结果为1
^
:按位异或,不同结果为1
>>>
:逻辑右移或无符号右移,低位溢出,高位补0
>>
:算数右移,低位溢出,符号位不变,并用符号位补溢出的高位
<<
:算数左移,符号位不变,低位补0
正数的左移是不断乘2,右移是不断除2.
负数的左移右移过程看这里类似之前取反的求解过程,使用补码计算,查看原码的结果。 - 原码、反码、补码
对于有符号而言:
- 最高位是符号位,0表示正数,1表示负数
- 正数的原码、反码、补码都一样,三码合一
- 负数的反码=原码符号位不变,其他位取反
- 负数的补码=负数的反码+1,反码=补码-1
- 0的反码、补码都是0
- java没有无符号数
- 计算机运算的时候都是以补码的方式运算的
- 看运算结果时,要看他的原码
- 接收控制台输入的字符:
char c = scanner.next().charAt(0);
- switch细节
- 表达式和case后的常量类型一致。或者是可以自动转成
可以相互比较
的类型。 - switch表达式的返回值必须是byte、short、int、char、enum、String
- case表达式里面不写break语句,会发生穿透。
- case语句中必须是常量或者常量表达式,不能是变量
- default子句是可选的,没有匹配的case时,执行default
- switch语句流程图
- switch和if语句选择:
判断具体数值不多,而且符合short、byte、int、char、enum和String这6种类型,建议使用switch语句;对区间判断、结果为boolean类型判断,建议使用if语句
。
- 编程思想:化繁为简,先死后活
- 尽可能拆解问题,从最简单的出发
- 完成之后要把一些写死的值换成变量。
- 字符串的比较使用equals,建议
"hello".equals(name)
,这种写法可以避免空指针异常。 - continue和break可以结合label标签使用。在循环上面写
label:
(label名程序员可以自定义),continue和break后可以加上label名,表示对此label下的循环有效。