`
aqxyjay
  • 浏览: 3797 次
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
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; public Stack(int initialCapacity) { elements = new Object[DEFAULT_INITIAL_CAPACITY ...
环境:CentOS 7 + MariaDB 10 + Mysql_testDB_employees   选择employees的所有列,条件是first_name=Duangkaew或last_name=Botman且emp_no < 10011,并将hire_date列按照降序排列 MariaDB [employees]> SELECT * FROM employees WHERE (first_name = 'Duangkaew' OR last_name = 'Botman') AND emp_no < 20000 ORDER BY hire ...
重用对象而不是每次都创建一个相同功能的对象 极端的反面例子,每次执行都会创建一个新的String实例:   String s = new String("stringette"); // DON'T DO THIS!  建议: String s = "stringette";     不可变类通常可以使用静态工厂方法来避免创建不必要的对象 遗留任务: Boolean.valueOf(String)总是优先于构造器Boolean(String),确认valueOf的实现; Boolean b = true,确认语 ...
只包含静态方法和静态域的工具类,实例没有任何意义。 缺少显式构造器时,编译器会自动提供一个公有的、无参的缺省构造器。 将构造器私有化,则无法被实例化,也不能子类化: // Noninstantiable utility class public class UtilityClass { // Suppress default constructor for noninstantiability private UtilityClass() { throw new AssertionError(); } ... ...
Singleton,指仅被实例化一次的类。   方法一:公有静态final域,私有构造方法,可以通过反射进行攻击。 // Singleton with public final field public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ... } public void leaveTheBuilding() { ... } } 方法二:静态工厂方法,较灵活,易被修改,反序列化时会创建新实例,需注 ...
重叠构造器(telescoping constructor)模式 —— 代码复杂,阅读困难 示例代码:  // Telescoping constructor pattern - does not scale well! public class NutritionFacts { private final int servingSize; // (ml) required private final int servings; // (per container) required private final int calories; // optional ...
优点: 它们有名称; 不必在每次调用它们的时候都创建一个新的对象; 它们可以返回原返回类型的任何子类型的对象; 在创建参数化类型实例的时候,它们使代码变得更加简洁; 缺点: 类如果不含公有的或者受保护的构造器,就不能被子类化; 它们与其他的静态方法实际上没有任何区别。 深入理解静态工厂方法(见附件)   11.3.1 单例(Singleton)类 
Global site tag (gtag.js) - Google Analytics