3.1 介绍
1 类名应该用以大写字母开头的单词,每个单词的第一个字母都应该大写
3.2 注释
1 /**/不能嵌套
3.3 数据类型
1 整型int最常用,4字节,范围2的正负15次方(20亿),超过用8字节的double
2 绝大部分程序用double类型 8字节
3 Double.POSITIVE_INFINITY、Double.NEGATIVE_INFINITY、Double.NaN
判断非数值用Double.inNaN(x)
4 金融计算用BigDecimal,否则:
5 尽量不用char,Java使用UTF-16编码
6 整型值和布尔值之间不能进行相互转换。
3.4 变量
1 变量声明应该靠近第一次使用它的地方, 并且最好一行只申明一个变量。
2 final用于声明常量,常量名大写
3 类常量在所有方法之外,public static final
3.5 运算符
1 15/7==2 15%2==1 15.0/2==7.5
2 逻辑与和逻辑或是短路运算
3 位运算 &与|或^异或~非>>右移<<左移
4 Math http://download.oracle.com/javase/6/docs/api/java/lang/Math.html
精确计算StrictMath http://download.oracle.com/javase/6/docs/api/java/lang/StrictMath.html
5 数值转换 int 到 float 可能会丢精度 到double就不会 long到double会丢精度
6 数值间强制类型转换会截取 而不是四舍五入 而(int)Math.round(9.977)==10
7 布尔类型转换应该用b?1:0
8 枚举
3.6字符串
1 String 没有修改字符的方法
2 字符串比较用equals
3 http://download.oracle.com/javase/6/docs/api/java/lang/String.html
4 许多小段构建一个字符串用StringBuilder 1.4用StringBuffer(效率略低但支持多线程)
3.7 输入输出
1 Scanner http://download.oracle.com/javase/6/docs/api/java/util/Scanner.html
2 String.format 只格式化不输出
3.8 流程控制
1 循环中小心使用浮点数 可能条件永远不成立
2 最好不使用switch case只能整数或枚举
3 break可以支持标签 并用在任何语句 但只能跳出 不能跳入 最好不使用break和continue
3.9 大数值
BigInteger.valueOf(100)转为大数值
3.10 数组
1 数组大小不能改变,如需在运行时扩展,应使用ArrayList
2
3 =是浅拷贝 深拷贝需要Arrays.copyOf(原数组,新数组长度) 这种方法常用来增加数组的大小。1.4用System.arraycopy.
4 http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html
5 多维数组是数组的数组 可以不规则