一、写程序的良好习惯按以下模式写,特别是关键的类的时候。
1. 需求:...
2. 思路
1>...
2>...
3. 步骤
1>...
2>...
二、命名规范性
1. 包名 以全小写为标准
2. 类名 以XxxYyy为标准,驼峰式
3. 变量 以xxxYyy为标准,以便识别单词
三、数据类型
共有两种大类 基本类型 与 引用类型。其中 基本类型 又分为 三种:数值型、字符型、布尔型。
数值型 分为 byte、short、int、long、float、double。
字符型 为char
布尔型 为true 或 flase
引用类型 又分为 类 Class、接口 Interface 、及 数组
四、几种进制数据
有二进制、八进制、十进制、十六进制。八进制以O开头表示,十六进制以Ox开头表示。
进制之间的转换
十进制转二进制 是对十进制进行除2运算,运算结果以每次除2后余数的倒数表示。
其它进制转换 如二进制转八进制,则将三位二进制作为一个单位处理。
如十进制转十六进制,则将四位二制制作为一个单位处理。
五、运算符与类型提升
有几种运算符就不说了,这里需要说明的,java中在一个语句中,若一个低类型与高类型参与运算时,
将自动将低类型转成高类型进行运算。
如下面的测试:
byte c = 2;
c+=180; // c+=b; 相当于 c = (byte)(c+b) , 所以此语句不会在编译时报错的。编码器在编码时自动在前面加了强制转型。
//c =c +180 ; //这句是会报错的,因为你显示写完了语句的左右两边,
//编译器将c提升成int与180相加后,认为把int值赋值给byte可能损失精度的。
六、Switch 语句的特别
1>case 中只接受 byte、short、int、char
2>default不一定非得记在最后一条语句上,放在哪个位置,就在哪个位置上执行。
思考:
1.如何最有效率的得到2*8呢。
学习了移动运算符就可以自然想出去是 : 2<<3。
注意: a << b 结果是 a*2(b) 即a乘以2的b次方幂的结果。
a >> b 结果是 a/2(b) 即a除以2的b次方幂的结果。
2.如何有效率的互换两个变更的值。
想的最简单的方式的是定义一个临时变量 temp 去中转换下,但要新定义一个变量 效率不高。
可以通过 n = m +n; // 此方法,效率稍提高了点,但不是最好的。
m = n - m; //此句把n的值传给了m
n = n - m //此句把m的值传给了n,因为n代表两个数的和,而m代表原来的n值。
可以通过 n = n ^ m; // 借用异或来搞定,是因为一个数 异或 另一个数两次就是代表 本身了。
m = n ^ m;//此句把n的值传给了m
n = n ^ m //此句把m值 传给了n,因为此句右边n代表第一句的n^m,而m代表的是原来的n。