博客专栏  >  编程语言   >  跟着我读EffectiveJava

跟着我读EffectiveJava

effectivaJava是一本偏向于底层的书籍,整体来讲还是比较难以理解的,这本书也使我受益良多.通过它可以了解Java代码的优化,不论是构造器的使用还是泛型的使用,都能勾让你慎重选择,而不是像初学者一样直接生成这些方法.

关注
25 已关注
37篇博文
  • EffectiveJava(36) -- 坚持使用Override注解

    @Override 注解: 表示被注解的方法声明覆盖了超类型中的一个声明 我们应该在想要覆盖超类声明的每个方法声明中使用 Override 注解 ; 现在的 IDE 都提供了代码检验功能 . 当一个...

    2017-03-26 20:49
    9474
  • EffectiveJava(37) -- 学会使用标记注解与标记接口

    本节主要比较标记注解和标记接口 标记接口: 指接口中没有包含方法声明 , 而只是指明一个类实现了具有某种属性的接口 标记注解: 标记注解是特殊类型的注解,其中不包含成员。标记注解的唯一目的就是标记...

    2017-03-26 21:20
    12477
  • EffectiveJava(35) -- 注解优先于命名模式(从零构建JUnit测试类)

    在 java1.5 版本之前的代码中 , 一般使用命名模式表明哪些程序元素需要通过某种工具或框架进行特殊处理 . 但是它有严重的缺点 – 以 Junit 为例 1.由于 JUnit 要求测试...

    2017-03-25 15:06
    12994
  • EffectiveJava(34) -- 使用接口模拟可伸缩的枚举

    ~~使用可伸缩性枚举模式会导致扩展实例的元素是基本类型的实例 , 但是基本类型的实例却不是扩展类型的元素 , 这样得到的数据很是混乱 . 所以可伸缩性枚举模式是不被 Java 语言支持的 , 而且直至...

    2017-03-22 23:31
    10269
  • EffectiveJava(33) -- EnumMap详解(使用EnumMap代替序数)

    因为数组不能与泛型兼容 , 所以当你要使用 ordinal 方法来索引数组的代码的时候,应该考虑使用 EnumMap . EnumMap 在内部使用了数组,它也是Map的一个实现类 , Map 的实...

    2017-03-21 22:19
    10013
  • EffectiveJava(1) 构造器和静态工厂方法

    构造器和静态工厂方法**构造器是大家创建类时的构造方法,即使不显式声明,它也会在类内部隐式声明,使我们可以通过类名New一个实例. 静态方法是构造器的另一种表现形式** 主题要点:何时以及如何创建对象...

    2017-02-24 19:08
    4039
  • EffectiveJava(2)应对多个构造函数应当使用构建器

    ** 应对多个构造函数应当使用构建器** 静态工厂和构造器都不能很好的扩展到大量的可选参数,遇到大量参数有大量可选域时,只能重复生成可选参数递增的构造方法,这种构造模式叫做重叠构造器...

    2017-02-24 19:09
    7181
  • EffectiveJava(3)使用是由构造器或枚举类型强化singleton

    使用是由构造器或枚举类型强化singleton普通singleton:借助AccessibleObject.setAssess方法,通过反射机制调用私有构造器.抵御这种攻击可以修改构造器,让其再被要求...

    2017-02-24 19:11
    4095
  • EffectiveJava(4)通过私有构造器强化不可实例化的能力

    通过私有构造器强化不可实例化的能力原理:只有当类不包含显式的构造器时,编译器才会生成缺省的构造器,因此只要让这个类包含私有构造器,他就不能被实例化 这种方式下,子类没有可访问的超类构造器可调用 /...

    2017-02-24 19:12
    4141
  • EffectiveJava(5)避免创建不必要的对象

    避免创建不必要的对象1.通过延迟初始化对象提高性能 调用功能方法时调用静态工厂方法,而不是调用类时使用 2.适配器:把功能委托给一个后备对象,从而为后备对象提供一个接口的对象 3.自动装箱:优先使...

    2017-02-24 19:18
    4342
  • EffectiveJava(6)消除过期对象的引用

    消除过期对象的引用过期引用 – 在操作集合类的时候,未清理过期的对象引用(即:过期引用),常会导致内存泄露.从而报outOfmemory错误. 1.过期对象导致内存泄漏. 2.一旦对象引用过期,清...

    2017-02-24 19:21
    5439
  • EffectiveJava(7)避免使用终结方法

    避免使用终结方法1.使用终结方法会导致行为不稳定,性能降低,以及可移植性的问题.(终结线程的优先级过低) 终结方法不能保证被及时的执行(从一个对象变得不可到达开始,到中介方法被执行,所花费的时间...

    2017-02-24 19:23
    6944
  • EffectiveJava(8)覆盖equals是要遵守的约定

    覆盖equals是要遵守的约定1.覆盖种类: -类的每个1实例本质上都是唯一的 -不关心类是否提供了”逻辑相等”的测试功能(Random测试是否能随机相同数字) -超类已...

    2017-02-24 19:24
    5466
  • EffectiveJava(9)覆盖equals是总要覆盖hashCode

    覆盖equals是总要覆盖hashCode通过散列函数将集合中不相等的实例均匀的分布在所有可能的散列值上 1.把某个非零的常数值保存在一个名为result的int类型变量中 2.对于对象中每个关键...

    2017-02-24 19:25
    9545
  • EffectiveJava(10)覆盖equals是视情况覆盖toString

    覆盖equals是视情况覆盖toString 1.toString返回字符串 className@163b91 -calssName 类的名称 @ @ 163b91 散列码...

    2017-02-24 19:26
    5457
  • EffectiveJava(11)Java中的clone

    java中的cloneclone构造器及其静态工厂的变形 优点:它们不依赖于某一种很有风险的,语言之外的对象创建机制; 它们不要求遵守尚未制定好文档的规范 ...

    2017-02-24 19:28
    8288
  • EffectiveJava(12)考虑实现Comparable接口

    考虑实现Comparable接口compareTo方法 Comparable接口的唯一方法,允许进行简单的等同性比较,允许执行顺序比较 Comparable接口被所有值类实现.所以...

    2017-02-24 19:29
    7629
  • EffectiveJava(13)使类和成员的可访问性最小化

    1.为什么要使类和成员可访问性最小化 它可以有效地解除组成系统的各模块之间的耦合关系,使得这些模块可以独立的开发 测试 优化 使用 理解和修改.提高软件的可重用性 2.成员的访问级别 ...

    2017-02-26 13:56
    5767
  • EffectiveJava(14)在公有类中使用访问方法而非公有域

    1.公有类永远都不应该暴露可变的域.如果域是不可变的,暴露公有类的危害就要小一些. 但是,有时候需要用包级私有的或者私有的嵌套类来暴露域,无论这个类是否可变 2.如果公有类暴露了它的访问域,要想在...

    2017-02-28 21:12
    6206
  • EffectiveJava(15)强化对象和域的不可变性

    概念: 不可变类是其实例不能被修改的类,不可变类比可变类更加易于设计 实现和使用.它们不容易出错,而且更加安全. 优点 1.不可变对象只有创建时状态. 2.不可变对象本...

    2017-02-28 21:15
    6055
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部