- 博客(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 107
原创 EJ.05 避免创建不必要的对象
重用对象而不是每次都创建一个相同功能的对象 极端的反面例子,每次执行都会创建一个新的String实例: String s = new String("stringette"); // DON'T DO THIS! 建议: String s = "stringette"; 不可变类通常可以使用静态工厂方法来避免创建不必要的对象 遗留任务: B...
2013-12-09 23:29:54 68
原创 EJ.04 通过私有构造器强化不可实例化的能力
只包含静态方法和静态域的工具类,实例没有任何意义。 缺少显式构造器时,编译器会自动提供一个公有的、无参的缺省构造器。 将构造器私有化,则无法被实例化,也不能子类化: // Noninstantiable utility class public class UtilityClass { // Suppress default constructor for nonins...
2013-12-07 01:02:56 100
原创 EJ.03 用私有构造器或者枚举类型强化Singleton属性
Singleton,指仅被实例化一次的类。 方法一:公有静态final域,私有构造方法,可以通过反射进行攻击。 // Singleton with public final field public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis(...
2013-12-07 01:00:41 106
原创 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 78
原创 EJ.01 考虑用静态工厂方法代替构造器
优点: 它们有名称; 不必在每次调用它们的时候都创建一个新的对象; 它们可以返回原返回类型的任何子类型的对象; 在创建参数化类型实例的时候,它们使代码变得更加简洁; 缺点: 类如果不含公有的或者受保护的构造器,就不能被子类化; 它们与其他的静态方法实际上没有任何区别。 深入理解静态工厂方法(见附件) 11.3.1 单例(Singleton)类 11.3.2 枚举...
2013-12-04 21:42:23 104
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人