摘要:
试图根据一个集合是Set、Liist、还是其他的集合类型,对它进行分类的程序: 期望打印出的是Set,List,Unknown Collection,但实际上却是三个Unknown Collection。classify方法被重载,而要调用哪个重载方法是在编译时做出决定的,而三个集合的参数在编译时的 阅读全文
摘要:
Hashtable实现一个键值映射的表。任何非null的object可以用作key和value。 为了能存取对象,放在表里的对象必须实现hashCode和equals方法。 一个Hashtable有两个参数影响,initial capacity和load factor。 Hashtable是同步化的 阅读全文
摘要:
1.谨慎地选择方法的名称。遵循标准的命名习惯。 2.不过于追求提供便利的方法。方法太多会使类难以学习、使用、文档化、测试和维护。 3.避免过长的参数列表。目标是四个参数以下。 缩短参数列表的方法: (1)把方法分解成多个方法,可能会导致方法过多, 通过提升方法正交性,可以减少方法数目。java.ut 阅读全文
摘要:
Java是一门安全的语言,但是如果不采取措施,还是无法保证安全性。假设类的客户端会尽其所能来破坏类的约束条件,因此必须保护性地设计程序。 考虑下面的类,声称表示一段不可变的时间周期: 因为Date本身是可变的,因此很容易违反起始时间不能在结束时间之后的约束。 为保护Period实例的内部信息被破坏, 阅读全文
摘要:
绝大多数方法和构造器对于传递给它们的参数值都会有某些限制。如索引值不能为负数,对象引用不能为null。应该在文档中清楚指明限制,并且在方法体的开头处检查参数,以强制施加这些限制,以便在错误发生之后尽快检测出错误和确定错误根源。 对于公有方法,要用javadoc的@throws标签在文档中说明违法参数 阅读全文