- 博客(7)
- 收藏
- 关注
原创 EJ.06 消除过期的对象引用
Java语言也需要考虑内存管理//Can u spot the "memory leak"?public class Stack { private Ojbect[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; ...
2014-09-12 00:01:36 114
原创 SQL实践笔记——基础语法
环境:CentOS 7 + MariaDB 10 + Mysql_testDB_employees 选择employees的所有列,条件是first_name=Duangkaew或last_name=Botman且emp_no < 10011,并将hire_date列按照降序排列MariaDB [employees]> SELECT * FROM e...
2014-09-10 23:17:26 108
原创 EJ.05 避免创建不必要的对象
重用对象而不是每次都创建一个相同功能的对象极端的反面例子,每次执行都会创建一个新的String实例: String s = new String("stringette"); // DON'T DO THIS! 建议:String s = "stringette"; 不可变类通常可以使用静态工厂方法来避免创建不必要的对象遗留任务:B...
2013-12-09 23:29:54 69
原创 EJ.04 通过私有构造器强化不可实例化的能力
只包含静态方法和静态域的工具类,实例没有任何意义。缺少显式构造器时,编译器会自动提供一个公有的、无参的缺省构造器。将构造器私有化,则无法被实例化,也不能子类化:// Noninstantiable utility classpublic class UtilityClass { // Suppress default constructor for nonins...
2013-12-07 01:02:56 105
原创 EJ.03 用私有构造器或者枚举类型强化Singleton属性
Singleton,指仅被实例化一次的类。 方法一:公有静态final域,私有构造方法,可以通过反射进行攻击。// Singleton with public final fieldpublic class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis(...
2013-12-07 01:00:41 107
原创 EJ.02 遇到多个构造器参数时要考虑用构建器
重叠构造器(telescoping constructor)模式 —— 代码复杂,阅读困难示例代码: // Telescoping constructor pattern - does not scale well!public class NutritionFacts { private final int servingSize; // (ml) required...
2013-12-04 23:10:07 79
原创 EJ.01 考虑用静态工厂方法代替构造器
优点:它们有名称;不必在每次调用它们的时候都创建一个新的对象;它们可以返回原返回类型的任何子类型的对象;在创建参数化类型实例的时候,它们使代码变得更加简洁;缺点:类如果不含公有的或者受保护的构造器,就不能被子类化;它们与其他的静态方法实际上没有任何区别。深入理解静态工厂方法(见附件) 11.3.1 单例(Singleton)类 11.3.2 枚举...
2013-12-04 21:42:23 105
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人