- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 对象创建型模式
1、ABSTRACT FACTORY(抽象工厂)意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。2、BUILDER(生成器)意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。(1和2主要区别是:Builder着重于一步步构造一个复杂对象。而Abstract Factory着重于多个系列的产品对象。Builder在最后的一步返回
2012-10-26 12:08:28 256 1
原创 effective java(序列化)
1、谨慎地实现Serializable接口a、实现Serializable接口而付出的代价是,一旦一个类被发布,就大大降低了“改变这个类的实现”的灵活性系列化会使类的演变受到限制,这种限制与流的唯一标示符有关,通常也称做序列版本UID。如果你没有显示的声明序列版本,系统就会自动地根据这个类来调用一个复杂的元素过程,从而在运行时产生标识号(这个值首类名、实现的接口名称、以及所有公有的和受保护
2012-07-16 17:27:43 291
原创 effective java(并发)
1、同步访问共享的可变数据2、避免过度同步3、executor和task优先于线程4、并发工具优先于wait和notify5、线程安全性的文档化6、慎用延迟初始化7、不要依赖与线程调度器8、避免使用线程组
2012-07-16 17:19:34 337
原创 effective java(异常)
1、只针对异常的情况才使用异常某一天,如果你不走运的话,可能会碰到这样的代码:// Horrible abuse of exceptions. Don't ever do this!try {int i = 0;while(true)range[i++].climb();}catch(ArrayIndexOutOfBoundsExceptione){}设计良好的
2012-07-16 17:15:16 248
原创 effective java(通用程序设计)
1、将局部变量的作用域最小化2、for-each循环优先于传统的for循环3、了解和使用类库4、如果需要精确的答案,请避免使用float和double5、基本类型优先于装箱基本类型6、如果其他类型更合适,则尽量避免使用字符串7、当心字符串连接的性能8、通过接口引用对象9、接口优先于发射机制10、谨慎地使用本地方法11、谨慎地进行优化12、遵守普遍接受的命
2012-07-16 16:49:18 337
原创 effective java(方法)
1、检查参数的有效性对于公有的方法,要用@Javadoc的@throws标签在文档中说明违反参数限制时会抛出的异常。/***@throws ArithmeticException if m is less than or equals to 0*/public BigInteger mod(BigInteger m) {if (m.sigum() throws new
2012-07-16 16:42:03 199
原创 effective java(枚举和注解)
1、用enum代替int常量2、用实例域代替序数3、用EnumSet代替位域4、用EnumMap代替序数索引5、用接口模拟可伸缩的枚举6、注解优先于命名模式7、坚持使用Override注解8、用标记接口定义类型
2012-07-16 16:38:13 280
原创 effective java(泛型)
1、请不要在新代码中使用原生态类型2、消除非受检警告3、列表优先于数组4、优先考虑泛型5、优先考虑泛型方法6、利用有限通配符来提升API的灵活性7、优先考虑类型安全的异构容器
2012-07-16 16:34:04 210
原创 effective java(类和接口)
1、使类和成员的可访问性最小化要区别设计良好的模块和设计不好的模块,最重要的因素在于,这个模块对于外部的其它模块而言,是否隐藏其内部数据和其它实现细节。设计良好的模块会隐藏所有的实现细节,把它的API与它的实现清晰地隔离开来。然后,模块之间通过API进行通信,这个概念被称为信息隐蔽或封装。地一条规则:尽可能地使每个类或者成员不被外界访问。对于成员:private:packa
2012-07-16 16:27:53 222
原创 effective java(对于所有对象都通用的方法)
1、覆盖equals时请遵守通用的约定一、覆盖equals方法看起来似乎很简单,但是许多覆盖方式会导致错误,并且导致严重的后果,最容易避免这类问题的办法就是不覆盖equals方法,在这种情况下,类的每个实例都只于自身相等。如果满足以下任意一个条件,这就正是我们期望的结果:a、类的每个实例本质上都是唯一的。(对于代表活动的实体而不是值的类来说确实如此,例如Thread。)b、不关系类是否
2012-07-16 16:21:58 292
原创 effective java(创建和销毁对象)
1、考虑用静态工厂方法代替构造器(静态工厂方法与设计模式中的工厂方法模式不同)对于类而言,为了让客户端获取它自身的一个实例,最常用的方法是提供一个公有的构造器。还有一种方法,类可以提供一个公有的静态工厂方法,它只是一个返回类的实例的静态方法。下面是一个来自Boolean的示例:public static Boolean valueOf(boolean b) { ret
2012-07-16 13:58:58 365
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人