原始设备制造商协议
1、所有写法都必须加入@override注释
2、不能使用过时的班级
3、所有POJO类属性必须使用包装数据类型(空)
即使不设定默认值,也请不要对getter/setter附加逻辑
4、向序列化类添加属性时,请不要修改serialVersionUID
5、声明final时:
a、不需要重新赋值的变量
b、对象参数不允许定向修改
c、类方法不可重写
6、对象的clone方法默认为写副本
浅复制:只复制一个对象,不复制对对象内部其他对象的数组或引用
深复制:复制对象、对象内部的参照
收藏处理
1、equals和hashCode:a、存储在set中的对象b、自定义对象必须作为映射的关键重写
2、array=list.to array (newt [ list.size (] ) ) ) ) ) ) ) ) )。
3、不要在foreach循环中进行元素的remove和add操作,remove请使用迭代器
4、逆向遍历的话,即使中途有删除也不会漏掉要素
5、收藏初始化时,尽量指定收藏初始值的大小
6、使用entrySet遍历了映射类集合KV。 keySet其实遍历了两次。 第一次换成了迭代器。 第一次是从hashMap取值的吗?
并发处理
1、创建线程(池)时,请指定有意义的线程名称
2、线程池不允许使用执行程序创建,而是通过ThreadPoolExecutor创建
3、用ThreadLocal代替原来的新简单数据格式
私有testaticfinalthreadlocaldateformatter=new thread local {
@ overrideprotectedsimpledateformatinitialvalue ((returnnewsimpledateformat ) ) yyyy-mm-DD );
}
(;
4、可以用对象锁定,不在类中锁定
5、当Timer运行多个TimeTask时,只要有一个没有捕捉到异常,其他任务自行结束,使用ScheduledExecutorService
6、混洗映射在容量不够时进行重置,高合并可能导致死链,导致CPU暴涨
其他
1、POJO类的布尔型变量中不要包含is
2、枚举类的构建方式默认为私有强制
3、POJO是DO/DTO/BO/VO的总称,禁止命名为xxxPOJO
4、运算符与以下一起换行
5、逻辑超过三层,实现状态模式
6、三合一资源都是确保资源正确关闭的有力途径(JDK7)。
7、无法在finally块中使用返回
8、日志使用占位符
logger.debug (' processingtradewithid 3360 { } symbol : { } ',id,symbol ) ) ) ) ) ) ) ) )。