effective java
文章平均质量分 69
perfect_red
这个作者很懒,什么都没留下…
展开
-
第四章 类和接口 第16条 复合优先于继承
本条目讨论的问题并不适用于接口继承与方法调用不同的是,继承打破了封装性,如果超类中特定功能的实现细节发生了变化,子类可能会遭到破坏,即使它的代码完全没有改变,除非超类是专门为了扩展而设计的,并且有很好文档说明实例:public class InstrumentedHashSet<E> extends HashSet<E>{ private int addCount = 0...原创 2018-05-26 00:24:19 · 207 阅读 · 0 评论 -
effective java 第28条 利用有限制通配符来提升API的灵活性
有这样一个类:public class Stack<E> { private E[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack(){ elements = (E[]) new O...原创 2018-07-14 18:16:00 · 234 阅读 · 0 评论 -
effective java 第27条 优先考虑泛型方法
最简单的使用: public static <E> Set<E> union(Set<E> s1,Set s2){ Set<E> result = new HashSet<>(s1); result.addAll(s2); return result; }这是最简单的使用,不会...原创 2018-07-14 14:55:21 · 188 阅读 · 0 评论 -
effective java 第6章 枚举和注解 第30条 用enum代替int常量
枚举是什么? 枚举类型是指由一组固定的常量组成合法值的类型。枚举类型是解决常量int的另一种解决方案。枚举类型的简单示例:public enum AlarmPoints {STAIR1,STAIR2,LOBBY,OFFICE1,OFFICE2,OFFICE3,OFFICE4,BATHROOM,UTILITY,KITCHEN}枚举的优势: 枚举类型是真正的f...原创 2018-07-20 00:38:43 · 456 阅读 · 0 评论 -
Thinking in java 第19章 枚举类型 19.1-19.7
public class EnumClass { public static void main(String[] args) { Arrays.asList(Shrubbery.values()).forEach(e->{ System.out.println(e + "ordinal:" + e.ordinal()); ...原创 2018-07-17 00:24:26 · 159 阅读 · 0 评论 -
对于jdk1.8 的 接口中default方法的疑惑
接口中的default方法可能会使得接口被破坏掉如下代码:public interface _No { default void run3() { run2(); } default void run2() { System.out.println("run2"); } static void run1() { System.out.println("sta...原创 2018-05-30 01:20:14 · 1089 阅读 · 0 评论 -
第四章 类和接口 第18条 接口优于抽象类
抽象类的限制:只允许单继承(使用内部类可以模拟多重继承)接口的优点:方便现有类的扩展接口是定义mixin(混合类型的理想选择)接口允许我们构造非层次结构的类型框架,接口之间可以实现多重继承通过包装类模式,接口使得安全地增强类的功能成为一种可能,如果使用抽象类来定义类型,那么 程序员队了使用继承的手段来增加功能,没有其它的选择,这样得到的类与包装类相比,功能更差,也更加脆弱通过对你导出的第个重要接口...原创 2018-05-30 01:10:55 · 149 阅读 · 0 评论 -
第四章 类和接口 第15条 使可变性最小化
第15条:使可变性最小化如何使类成为不可变的不要提供任何会修改对象状态的方法 即setter保证类不会被扩展 一般使这个类成为final的使所有域都是final的使所有域成为私有的确保对于任何可变组件的互斥访问 readObject方法中使用保护性拷贝public final class Complex { private final double re; private final ...原创 2018-05-25 00:30:55 · 197 阅读 · 0 评论 -
第四章 类和接口 第13条 使类和成员的可访问性最小化
第13条:使类和成员的可访问性最小化 封装:隐藏实现 提供api ,这是软件设计的基本原则之一 好处:使系统模块化 第一条规则:尽可能地使每个类或者成员不被外界访问 子类的访问权限不允许低于超类中的访问级别 实例域决不可以是公有的 类具有公有的静态final 数组域,或者 返回这种域的访问方法,这几乎总是错误的 解决办法:1.private static...原创 2018-05-24 21:21:07 · 155 阅读 · 0 评论 -
第四章 类和接口 第22条 优先考虑静态成员类
嵌套类:是指被定义在另一个类的内部的类,嵌套类存在的目的应该只是为它的外围类提供服务四种嵌套类:静态成员类、非静态成员类、匿名类和局部类静态成员类的一种常用用法是作为公有的辅助类,公当与它的外部类一起使用时才有意义如果嵌套类的实例可以在它外围类的实例之外独立存在,这个嵌套类就必须是静态成员类:在没有外围实例的情况下,要想创建非静态成员类的实例是不可能的。当非静态成员的实例被创建的时候,它和外围实例...原创 2018-06-03 22:53:55 · 126 阅读 · 0 评论 -
effective java 第5章 泛型 第29条 优先考虑类型安全的异构容器
在集合的用法中,泛型充当被参数化的容器。这样就限制你每个容器只能有固定数目的类型参数。一般来说,这正是你想要的。但是,有的时候,我们需要更多的灵活性,比如,我们想安全的访问数据库的所有列,有一种方法可以容易做到这一点。这种想法是将键(key)进行参数化而不是将容器进行参数化。然后将参数化的键交给容器,来插入或者获取值。用泛型系统来确保值的类型与它的键相符。public class Favorite...原创 2018-07-15 23:20:09 · 216 阅读 · 0 评论