Effective Java
文章平均质量分 84
狄利克雷
这个作者很懒,什么都没留下…
展开
-
Effective Java——方法
目录 三十八、检查参数的有效性 三十九、必要时进行保护性拷贝 四十、谨慎设计方法签名 四十一:慎用重载 四十二、慎用可变参数 四十三、返回零长度的数组或者集合,而不是null 四十四、为所有导出的API元素编写文档注释 三十、用enum代替int常量 绝大多数方法和构造器对于传递给它们的参数值都会有些限制。比如,索引值必须大于等于0,且不能超过其最大值原创 2015-05-20 20:42:22 · 772 阅读 · 0 评论 -
Effective Java——并发
目录 六十六、同步访问共享的可变数据 六十七、避免过度同步 六十八、executor和task优先于线程 六十九、并发工具优先于wait和notify 七十、线程安全性的文档化 七十一、慎用延迟初始化 七十二、不要依赖于线程调度器 七十三、避免使用线程组 六十六、同步访问共享的可变数据 在Java中很多时候都是通过synchronized关键字来实现原创 2015-06-04 16:10:31 · 549 阅读 · 0 评论 -
Effective Java——序列化
目录 七十四、谨慎地实现Serializable接口 七十五、考虑使用自定义的序列化形式 七十六、保护性的编写readObject方法 七十四、谨慎地实现Serializable接口 将一个对象编码成一个字节流称作对象序列化,相反的处理即从字节流编码中重新构建对象称作反序列化。实现Serializable接口而付出的最大代价是,一旦一个类被发布,就大大降低原创 2015-06-25 20:13:30 · 486 阅读 · 0 评论 -
Effective Java——异常
目录 五十七、只针对异常情况才使用异常 五十八、对可恢复的情况使用受检异常,对编程错误使用运行时异常 五十九、避免不必要的使用受检异常 六十、优先使用标准异常 六十一、抛出与抽象相对应的异常 六十二、每个方法抛出的异常都要有文档 六十三、在细节中包含能捕获失败的信息 六十四、努力使失败保持原子性 六十五、不要忽略异常 五十七、只针对异常情况才使用异常原创 2015-05-27 22:11:01 · 448 阅读 · 0 评论 -
Effective Java——通用程序设计(下)
目录 五十一、当心字符串连接的性能 五十二、通过接口引用对象 五十三、接口优先于反射机制 五十四、谨慎地使用本地方法 五十五、谨慎地进行优化 五十六、遵守普遍接受的命名惯例 五十一、当心字符串连接的性能 字符串连接操作(+)是把多个字符串合并为一个字符串的最为便利的途径。因此如果仅仅是对两个较小字符串进行一次连接并输出连接结果,这样是比较合适的。然而如果原创 2015-05-26 21:21:51 · 568 阅读 · 0 评论 -
Effective Java——枚举和注解
目录 三十、用enum代替int常量 三十一、用实例域代替序数 三十二、用EnumSet代替位域 三十三、用EnumMap代替序数索引 三十四、用接口模拟可伸缩的枚举 三十五、注解优先于命名模式 三十六、坚持使用override注解 三十七、用标记接口定义类型 三十、用enum代替int常量 枚举类型是指由一组固定的常量组成合法值的类型,该特征是在J原创 2015-03-10 15:30:14 · 735 阅读 · 0 评论 -
Effective Java——泛型
目录 二十三、请不要在新代码中使用原生态类型 二十四、消除非受检警告 二十五、列表优先于数组 二十六、优先考虑泛型 二十七、优先考虑泛型方法 二十八、利用有限制通配符来提升API的灵活性 二十九、优先考虑类型安全的异构容器 二十三、请不要在新代码中使用原生态类型 声明中具有一个或者多个类型参数的类或者接口,就是泛型类或接口,如List,这其中E表示Li原创 2015-03-06 15:52:33 · 576 阅读 · 0 评论 -
Effective Java——对象通用方法
目录 八、覆盖equals时请遵守通用约定 九、覆盖equals时总要覆盖hashCode 十、始终要覆盖toString 十一、谨慎地覆盖clone 十二、考虑实现Comparable接口 八、覆盖equals时请遵守通用约定 对于Object类中提供的equals方法在必要的时候是需要重载的,然而如果违背了一些通用的重载准则,将会给程序带来一些潜在的运行时原创 2015-02-05 13:59:29 · 516 阅读 · 0 评论 -
Effective Java——创建和销毁对象
一、考虑用静态工厂方法代替构造器 为了让客户端获取类的一个实例,除了使用公有的构造器,类还可以提供一个公有的静态工厂方法,下面这个方法将boolean基本类型值转换成Boolean对象引用: public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 静态构造方法与原创 2015-02-01 13:05:24 · 548 阅读 · 0 评论 -
Effective Java——类和接口(下)
目录 十八、接口优先于抽象类 十九、接口只用于定义类型 二十、类层次优于标签类 二十一、用函数对象表示策略 二十二、优先考虑静态成员类 十八、接口优先于抽象类 Java是不支持多重继承但是可以实现多个接口的,而这也恰恰成为了接口优于抽象类的一个重要因素。他们的主要差异如下: 1.现有的类可以很容易被更新,以实现新的接口。如果现存的类并不具备某原创 2015-02-25 13:49:09 · 498 阅读 · 0 评论 -
Effective Java——类和接口(上)
目录 十三、使类和成员的可访问性最小化 十四、在公有类中使用访问方法而非公有域 十五、使可变性最小化toString 十六、复合优先于继承 十七、要么为继承而设计,并提供文档说明,要么就禁止继承 十三、使类和成员的可访问性最小化 信息隐藏是软件程序设计的基本原则之一,面向对象又为这一设计原则提供了有力的支持和保障。这里我们简要列出几项受益于该原则的优势:原创 2015-02-13 20:25:54 · 526 阅读 · 0 评论 -
Effective Java——通用程序设计(上)
目录 四十五、将局部变量的作用域最小化 四十六、for-each循环优先于传统的for循环 四十七、了解和使用类库 四十八、如果需要精确的答案,请避免使用float和double 四十九、基本类型优先于装箱基本类型 五十、如果其他类型更适合,则尽量避免使用字符串 四十五、将局部变量的作用域最小化 要使局部变量的作用域最小化,最有力的实践就是在第一次使用它原创 2015-05-25 21:30:55 · 470 阅读 · 0 评论