- 代码命名不能以下划线或者美元符号开始,也不能以下划线或美元符号结束。
- 类名命名,大骆驼拼写法,即第一个词的首字母,以及后面每个词的首字母都大写。
- 方法,参数,变量,采用小骆驼拼写法,即第一个词的首字母小写,后面每个词的首字母大写。
- 常量命名全部大写,单词间用下划线隔开。
- 包名统一小写,单数形式。类名如果有复数含义,命名可以采用复数形式。
- 在long或者Long赋值时,数值后使用大写的L。
- 如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果是非空代码块,则左大括号前不换行,左大括号后换行,右大括号前换行,右大括号后还有else等代码则不换行;表示终止的右大括号后必须换行。
- 左小括号和字符之间不出现空格,右小括号和字符之间也不出现空格。左大括号前需要空格。
- if/for/while/switch/do等保留字与括号之间都必须加空格。
- 任何二目、三目运算符的左右两边都需要加一个空格。
- 采用4个空格缩进,禁止使用tab字符。
- 注释的双斜线与内容之间有且仅一个空格。
- 单行字符数不超过120个,超出需换行,第二行相对缩进四个空格,之后不缩进。
- 方法参数在定义和传入时,多个参数逗号后边必须加空格。
- 直接用类名来访问类的静态变量或静态方法。
- 所有的覆写方法,必须加@Override注解。
- 不能使用过时的类或方法。
- 所有的相同类型的包装类对象之间值的比较,全部使用equals方法比较。
- 循环体内,字符串的连接方式,使用StringBuilder的append方法进行扩展。
- Set存储的对象必须重写equals和hashCode这两个方法,String重写了hashCode和equals方法,所以可以当做key使用。
- 使用集合转数组的方法,必须使用集合的toArray(T[] array),传入的是类型完全一样的数组,大小就是list.size()。
- 使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法。
- 不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。
- 集合初始化时,指定集合初始值大小。
- 使用entrySet遍历Map类集合KV,而不是keySet方式进行遍历。
- 线程资源必须通过线程池提供,不允许在应用中自行显式创建线程。
- 线程池不允许使用 Executors去创建,而是通过ThreadPoolExecutor去创建。
- 在if/else/for/while/do语句中必须使用大括号,即使只有一行代码。
- 类、类属性、类方法的注释,必须使用用/*内容/格式。
- 所有的类都必须添加创建者和创建日期。
- 方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释,注意与代码对齐。
- 特殊注释标记:待办事宜(TODO):( 标记人,标记时间,[预计处理时间])
错误,不能工作(FIXME):(标记人,标记时间,[预计处理时间]) - 编写单元测试代码遵守BCDE原则,即边界值测试,,正确的输入,与设计文档相结合,强制错误信息输入。
- 数据库小数类型为decimal,禁止使用float和double。
- 表必备三字段:id, gmt_create, gmt_modified。
- 单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表。
- 】超过三个表禁止join。
- 不要使用count(列名)或count(常量)来替代count(*)。
- 使用ISNULL()来判断是否为NULL值。
- 不得使用外键与级联。
- 禁止使用存储过程。
- 二方库版本号命名方式:主版本号.次版本号.修订号:主版本号:产品方向改变,或者大规模API不兼容,或者架构不兼容升级。次版本号:保持相对兼容性,增加主要功能特性,影响范围极小的API不兼容修改。修订号:保持完全兼容性,修复BUG、新增次要功能特性等。
- 高并发服务器建议调小TCP协议的time_wait超时时间。
- 给JVM环境参数设置-XX:+HeapDumpOnOutOfMemoryError参数,让JVM碰到OOM场景时输出dump信息。
- 在线上生产环境,JVM的Xms和Xmx设置一样大小的内存容量,避免在GC 后调整堆大小带来的压力。
阿里巴巴Java开发手册阅读笔记
最新推荐文章于 2022-11-04 09:46:40 发布