Java编码规范
编程规约
- 命名不要以下划线或美元符号开始,也不要以下划线和美元符号结束
- 类名UpperCamelCase,参数、方法名lowerCamelCase,常量名全部大写单词间下划线隔开
- 抽象类使用Abstract或Base开头,异常类使用Exception结尾
- 使用类型中括号紧挨的形式定义数组
- 布尔类型不要用is开头
- long或Long赋值时,数值后使用L,小写不容易区分;浮点同理
- 常量类要分类,不要写到一个里面
- 变量值仅在一个范围内,使用enum枚举
- 空格和换行的使用
- 空大括号{},不需要加多余空格;空代码块:左大括号前不换行,左大括号后换行,右大括号前换行,右大括号后还有else等不换行,表示终止的右大括号必须换行
- 左右小括号内部和字符之间不需要空格,但是左大括号前需要空格
- if / for / while / switch / do 等保留字与左右括号之间必须加空格
- 任何二目、三目(几目代表需要几个运算数)运算符的左右两边都需要加一个空格
- 采用4个空格缩进,禁止使用Tab
- 单行不超120个字符,若超过遵循换行规则:第二行相对第一行缩进4个空格,运算符与下文一起换行,方法调用的点符号与下文一起换行,方法调用中的多个参数需要换行时在逗号后进行,括号前不要换行
- 相同参数类型,相同业务含义才可以使用可变参数(...),参数类型避免定义为Object
- 使用常量调用equals来检测相同,比如“test”.equals(),避免空指针
- 整形包装类Integer的比较,全部使用equals方法比较
- 人恶化货币金额,均使用最小货币单位
- 浮点数基本数据类型不能用 == 判断相等,包装类不能用equals判断
- BigDecimal使用comepareTo方法判断,而不是equals;使用String转化BigDecimal对象,别用Double
- POJO必须加toString方法,如果继承了先super.toString();POJO类中不能同时用isxxx和getxxx获取属性
- 日期格式化时,传入pattern中表示年份统一使用小写的y(yyyy表示当天所在的年,YYYY表示当周所在的年,如果跨年就表示下一年)
- M表示月份,m表示分钟,H是24小时制,h是12小时制
- 获取当前毫秒数:System.currentTimeMills()
- 不允许程序任何地方使用 java.sql.Date,java.sql.Time,java.sql.TimeStamp
- 禁止程序中写死一年为365天,避免公历闰年出现日期转换错误或程序逻辑错误
- 覆写equals就必须覆写hashCode;因为Set存储的是不重复的对象,依据的就是这俩方法,所以必须重写;如果自定义对象作为Map的键,那么也必须覆写这两个方法
- 使用isEmpty()判断集合是否为空,不要使用size() == 0