在客户端(调用端)获取自身实例的方法:

  • 公有的构造器;
  • 类的静态工厂方法;

1. 使用静态工厂方法代替构造器

Boolean 是对基本类型 boolean 的包装类;

public final class Boolean implements ... {public static final Boolean TRUE = new Boolean(true);public static final Boolean FALSE = new Boolean(false);public static Boolean valueOf(boolean b) {return (b ? TRUE : FALSE);        // return (b ? Boolean.TRUE : Boolean.FALSE);}
}

也即类可以通过静态工厂方法来提供给它的客户端(调用端),而不是常规的通过构造器的方式;

Effective Java(一)—— 创建和销毁对象相关推荐

  1. Effective Java:创建和销毁对象

    前言: 读这本书第1条规则的时候就感觉到这是一本很好的书,可以把我们的Java功底提升一个档次,我还是比较推荐的.本博客是针对<Effective Java>这本书第2章所写的一篇读书笔记 ...

  2. 【读薄Effective Java】创建和销毁对象

    1. 考虑用静态工厂方法代替构造器 1.1 静态工厂的优点 静态工厂就是通过静态方法来代替构造器.相比构造函数,它有几个优势. 构造器没有名称.而静态工厂能指定名称,当一个类有多组构造函数的时候,可以 ...

  3. Java进阶 创建和销毁对象

    最近准备写点Javase的东西,希望可以帮助大家写出更好的代码. 1.给不可实例化的类提供私有构造器 比如:每个项目中都有很多工具类,提供了很多static类型的方法供大家使用,谁也不希望看到下面的代 ...

  4. Effective java 总结1 - 创建和销毁对象

    Effective java 总结 - 创建和销毁对象 第1条 用静态工厂方法代替构造器 优势 静态工厂方法有名称 不必每次调用的时候创建一个新的对象 可以返回原返回类型的任何子类型对象 返回对象的类 ...

  5. Effective Java(1)-创建和销毁对象

    Effective Java(1)-创建和销毁对象 转载于:https://www.cnblogs.com/Johar/p/10556218.html

  6. 《Effective Java》学习笔记 第二章 创建和销毁对象

    第二章 创建和销毁对象 何时以及如何创建对象,何时以及如何避免创建对象,如何确保他们能够适时地销毁,以及如何管理对象销毁之前必须进行的各种清理动作. 1 考虑用静态工厂方法代替构造器 一般在某处获取一 ...

  7. [Effective Java]第二章 创建和销毁对象

    第一章      前言 略... 第二章      创建和销毁对象 1.            考虑用静态工厂方法代替构造器 创建对象方法:一是最常用的公有构造器,二是静态工厂方法.下面是一个Bool ...

  8. Effective Java (3rd Editin) 读书笔记:1 创建和销毁对象

    1 创建和销毁对象 Item 1:考虑用静态工厂方法取代构造器 public static Boolean valueOf(boolean b) {return (b ? TRUE : FALSE); ...

  9. Effective Java读书笔记---二、创建和销毁对象

    二.创建和销毁对象 何时以及如何创建对象, 何时以及如何避免创建对象, 如何确保它们能够适时地销毁, 如何管理对象销毁之前必须进行的各种清理动作 1.用静态工厂方法代替构造器 优势: 它们有名称 不必 ...

  10. 《Effect Java》学习笔记1———创建和销毁对象

    第二章 创建和销毁对象 1.考虑用静态工厂方法代替构造器 四大优势: i. 有名称 ii. 不必在每次调用它们的时候都创建一个新的对象:   iii. 可以返回原返回类型的任何子类型的对象: JDBC ...

最新文章

  1. cruzer php sandisk 闪迪u盘量产工具_SanDisk Cruzer Micro下载
  2. C++操作符的优先级 及其记忆方法
  3. java在一个类里实现存款_用Java编写一个简单的存款
  4. 锡安赞歌 mp3下载
  5. iOS启动页广告XHLaunchAd
  6. 【论文写作】课程指导平台的开发中系统流程如何写
  7. 快速上手友盟推送前后端
  8. 题目:学习成绩 = 90分的同学用A表示,60 - 89分之间的用B表示,60分以下的用C表示
  9. LoadRunner压力测试:详细操作流程
  10. 手机QQ聊天记录文件解密方法学习
  11. ubuntu安装Google输入法
  12. 专科学历去学计算机,前景到底如何?
  13. 超小型模块:IDO-SOM2D01可应用于物联网智能网关等领域
  14. ASEMI双向可控硅BTA12A,详解BTA12A参数应用与特性
  15. 审稿意见的“so what”如何处理?
  16. 基于hal的hcsr04使用注意事项(f103c8t6)
  17. Android 文件管理器的列表界面
  18. 数据库: mongodb导入json数据
  19. opencv直线拟合cv::fitLine()
  20. Blender基础建模 | 大帅老猿threejs特训

热门文章

  1. html5 矩阵转换,功能HTML5矩阵变换
  2. mysql注入如何读取本地文件_如何通过SQL注入获取服务器本地文件
  3. api获取控件窗口的矩形大小_DevExpress 通用控件系列(4):SimpleButton
  4. Linux下redis基本安装配置(CentOS7)
  5. scala类型匹配注意事项
  6. android mtk平台,android mtk平台默认输入法
  7. Linux基础——Linux 基本指令 nano 和 cat
  8. Python——OpenCV形态学处理(膨胀与腐蚀)
  9. 男友升级为老公的时候
  10. 阿里云 磁盘脱机处理