上一页 1 2 3 4 5 6 7 8 ··· 13 下一页
摘要: 试图根据一个集合是Set、Liist、还是其他的集合类型,对它进行分类的程序: 期望打印出的是Set,List,Unknown Collection,但实际上却是三个Unknown Collection。classify方法被重载,而要调用哪个重载方法是在编译时做出决定的,而三个集合的参数在编译时的 阅读全文
posted @ 2016-08-06 23:56 没有梦想的小灰灰 阅读(266) 评论(0) 推荐(0) 编辑
摘要: Hashtable实现一个键值映射的表。任何非null的object可以用作key和value。 为了能存取对象,放在表里的对象必须实现hashCode和equals方法。 一个Hashtable有两个参数影响,initial capacity和load factor。 Hashtable是同步化的 阅读全文
posted @ 2016-08-06 17:56 没有梦想的小灰灰 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 1.谨慎地选择方法的名称。遵循标准的命名习惯。 2.不过于追求提供便利的方法。方法太多会使类难以学习、使用、文档化、测试和维护。 3.避免过长的参数列表。目标是四个参数以下。 缩短参数列表的方法: (1)把方法分解成多个方法,可能会导致方法过多, 通过提升方法正交性,可以减少方法数目。java.ut 阅读全文
posted @ 2016-08-06 15:50 没有梦想的小灰灰 阅读(222) 评论(0) 推荐(0) 编辑
摘要: Java是一门安全的语言,但是如果不采取措施,还是无法保证安全性。假设类的客户端会尽其所能来破坏类的约束条件,因此必须保护性地设计程序。 考虑下面的类,声称表示一段不可变的时间周期: 因为Date本身是可变的,因此很容易违反起始时间不能在结束时间之后的约束。 为保护Period实例的内部信息被破坏, 阅读全文
posted @ 2016-08-06 13:23 没有梦想的小灰灰 阅读(395) 评论(0) 推荐(0) 编辑
摘要: 绝大多数方法和构造器对于传递给它们的参数值都会有某些限制。如索引值不能为负数,对象引用不能为null。应该在文档中清楚指明限制,并且在方法体的开头处检查参数,以强制施加这些限制,以便在错误发生之后尽快检测出错误和确定错误根源。 对于公有方法,要用javadoc的@throws标签在文档中说明违法参数 阅读全文
posted @ 2016-08-06 00:07 没有梦想的小灰灰 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 标记接口是没有包含方法声明的接口,而只是指明一个类实现了具有某种属性的接口。考虑Serializable接口,通过实现这个接口,类表明它的实例可以被写到ObjectOutputStream。 标记接口相比标记注解的优点: 1.标记接口定义的类型是由被标记类的实例实现的;标记注解则没有定义这样的类型。 阅读全文
posted @ 2016-08-05 22:54 没有梦想的小灰灰 阅读(312) 评论(0) 推荐(0) 编辑
摘要: @Override 注解只能用在方法声明中,表示被注解的方法声明覆盖了超类型中的一个声明。 @Target指定注解只作用在方法 @Retention指定注解在编译的时候会被丢弃 应该在想要覆盖超类声明的每个方法声明中使用Override注解,这样当想要覆盖的方法没有被覆盖时,编译器能提示错误,大大减 阅读全文
posted @ 2016-08-05 00:27 没有梦想的小灰灰 阅读(196) 评论(0) 推荐(0) 编辑
摘要: Java 1.5之前,一般使用命名模式表明有些程序元素需要通过某种工具或者框架进行特殊处理。例如,JUnit测试框架原本要求用户一定要用test作为测试方法名称的开头。 命名模式的缺点:1.文字拼写错误导致失败,测试方法没有执行,也没有报错 2.无法确保它们只用于相应的程序元素上,如希望一个类的所有 阅读全文
posted @ 2016-08-04 17:35 没有梦想的小灰灰 阅读(496) 评论(0) 推荐(0) 编辑
摘要: Shiro是一个强大灵活的开源安全框架,提供身份验证、授权、会话管理、密码体系。 1.先创建一个Maven项目 2.配置pom 3.在src/main/java下创建log4j.properties文件,配置logger 4.在根目录下创建auth.ini文件 5.示例代码 6.运行结果 阅读全文
posted @ 2016-08-04 15:41 没有梦想的小灰灰 阅读(3466) 评论(0) 推荐(0) 编辑
摘要: 枚举类型是不可扩展的,但是接口类型是可扩展的。使用接口,可以模拟可伸缩的枚举。 如一个简单的计算器: 实现接口Operation,里面只有一个apply方法。 基本的运算: 扩展该计算器: 使用: 接口模拟可伸缩枚举的不足:无法实现从一个枚举继承到另一个枚举,所以有些公共的功能是在每个枚举类中重复的 阅读全文
posted @ 2016-08-03 17:48 没有梦想的小灰灰 阅读(300) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 13 下一页