我的技术博客经常被流氓网站恶意爬取转载。请移步原文:http://www.cnblogs.com/hamhog/p/3537576.html,享受整齐的排版、有效的链接、正确的代码缩进、更好的阅读体验。

第1条:用静态工厂代替构造函数

1. 形式

public static Boolean valueOf(boolean b) {
return b ? Boolean.TRUE : Boolean.FALSE;
}

2. 优点:

  • 可以有名称
  • 不一定要创建新对象,可以返回已有的对象
  • 可以返回子类类型的对象(例:java.util.Collections)
  • 让参数化代码变短(例:new HashMap<String,List<String>>() 改为 HashMap.newInstance() )

3. 缺点:不能子类化,不被IDE工具识别。

4. 常用名称:valueOf/of ; getInstance(Singleton); newInstance ; getType(不同的类时用); newType

第2条:构造函数参数很多时用Builder模式

Hamster hamhog = new Hamster.Builder("hamhog").age(1).height(100).weight(50).build();

第3条:实现Singleton的最佳方法:枚举类型

public enum Hamster{
INSTANCE; public void haveLunch() { ... }
}

第4条:把所有属性和方法都是静态的类的构造函数设为private

第5条:避免不必要的new

1. 用"hamster",不要用new String("hamster") ; 有静态工厂方法就用静态工厂,不用构造函数 ; 优先用int、long等,不要随意用Integer、Long。

2. 只在初始化创建一次实例的写法:

class Hamster {
private static final Calendar lunchTime; static {
lunchTime = Calendar.getInstance();
lunchTime.set( ... )
}
}

第6条:对于自己管理内存的类,要注意及时把过期的对象引用 = null (但平常没必要这样做),防止内存泄漏

第7条:不要使用finalizer。非要用的话,要记住调用super.finalize。

最新文章

  1. python之excel自动报表
  2. oracle 身份证校验函数
  3. ssh myeclipse的bug
  4. Android pulltorefresh使用
  5. jar包与lib包的区别
  6. iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
  7. java学习笔记(二)之数据部分
  8. linux服务器查看公网IP信息的方法
  9. Java Web程序工作原理
  10. PHP之intval()
  11. python 基础篇(二)数据类型概述
  12. IOS使用Jenkins持续集成
  13. AC Analysis
  14. spark2的编译
  15. 阿里mysql同步工具otter的docker镜像
  16. centos7 安装软件指南
  17. 基于模型的特征选择详解 (Embedded &amp; Wrapper)
  18. Mac python3.6 安装即使用 psycopg2
  19. Servet-------JSTL标签库
  20. MariaDB 数据库索引详解(9)

热门文章

  1. 强烈推荐android studio用的几个插件,androidstudio
  2. Objective-C 调用C++,C
  3. android117 下拉列表
  4. Java中的NIO和IO的对比分析
  5. Linux中的终端、控制台、tty、pty等概念
  6. Android_listView_BaseAdapter
  7. sql基本语法:
  8. JS常用正则(转)
  9. 关于Eclipse插件开发-----加入首选项(preferencePages)
  10. The Shapes of CSS