阿里巴巴java开发手册心得_阿里巴巴JAVA开发手册总结

OOP规约

1、所有的覆写方法,必须加@override注解

2、不能使用过时的类

3、所有的POJO类属性必须使用包装数据类型(null)

不用设定默认值,getter/setter不要加逻辑

4、序列化类新增属性时,请不要修改serialVersionUID

5、声明final的情况:

a、不需要重新赋值的变量

b、对象参数不允许修改指向

c、类方法不允许被重写

6、对象的clone方法默认是浅拷贝

浅拷贝:只复制一个对象,对象内部存在的指向其他对象数组或者引用则不复制

深拷贝:对象,对象内部的引用均复制

集合处理

1、必须重写equals和hashCode:a、set存储的对象 b、自定义对象作为map的键

2、array = list.toArray(new T[list.size()])

3、不要在foreach循环里进行元素的remove和add操作,remove请用Iterator

4、如果倒序的遍历,中间即使有删除也不会漏掉元素

5、集合初始化时,尽量指定集合初始值大小

6、使用entrySet遍历Map类集合KV,keySet其实是遍历了两次,一次是转为Iterator,一次是从hashMap取值??

并发处理

1、创建线程(池)时,请指定有意义的线程名称

2、线程池不允许使用Executors去创建,通过ThreadPoolExecutor

3、使用ThreadLocal代替原来的new SimpleDateFormat

private static final ThreadLocal dateFormatter = new ThreadLocal(){

@OverrideprotectedSimpleDateFormat initialValue() {return new SimpleDateFormat("yyyy-MM-dd");

}

};

4、能用对象锁,不要用类锁

5、Timer运行多个TimeTask时,只要一个没捕获异常,其它任务便会自行终止,使用ScheduledExecutorService

6、HashMap在容量不够时进行resize,由于高并发可能出现死链,导致CPU飙升

其它

1、POJO类中布尔类型的变量,都不要加is

2、枚举类构造方法被默认强制是私有

3、POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO

4、运算符与下文一起换行

5、逻辑超过三层的,状态模式实现

6、try-with-resources都是一个能够确保资源能被正确地关闭的强大方法(JDK7)

7、不能在finally块中使用return

8、日志使用占位符

logger.debug("Processing trade with id:{} symbol:{}", id, symbol)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值