
effective java
文章平均质量分 92
JMW1407
这个作者很懒,什么都没留下…
展开
-
Java:Effective java学习笔记之 用enum代替int常量
Java 用enum代替int常量用enum代替int常量1、用enum构建2、enum枚举常量与数据关联3、枚举常量与行为关联4、枚举策略模式5、总结参考用enum代替int常量在枚举类型出现之前,一般都常常使用int常量或者String常量表示列举相关事物。如:public static final int APPLE_FUJI = 0;public static final int APPLE_PIPPIN = 1;public static final int APPLE_GRANNY_S原创 2022-01-03 16:45:21 · 591 阅读 · 0 评论 -
Java:Effective java学习笔记之 优先考虑泛型和泛型方法
Java优先考虑泛型和泛型方法优先考虑泛型参考优先考虑泛型参考1、建议:优先考虑泛型方法。2、Effective Java 优先考虑泛型3、Effective Java笔记第四章泛型第四节优先考虑泛型原创 2021-12-25 20:49:14 · 421 阅读 · 0 评论 -
Java:Effective java学习笔记之 列表优先于数组
Java列表优先于数组1、列表优先于数组参考1、列表优先于数组参考1、第二十五条:列表优先于数组2、第25条:列表优先于数组原创 2021-12-23 08:29:39 · 338 阅读 · 0 评论 -
Java:Effective java学习笔记之 请不要在新代码中使用原生态类型
Java请不要在新代码中使用原生态类型1、请不要在新代码中使用原生态类型参考1、请不要在新代码中使用原生态类型1、在没有泛型之前,从集合中读取到每一个对象都必须进行转换。如果有人不小心插入了类型错误的对象,在运行时的转换处理就会出错。有了泛型之后,可以告诉编译器每个集合中接受哪些对象类型。编译器自动地为你的插入进行转换,并在编译时告知是否插入了类型错误的对象。这样就可以使程序更加安全和清楚。在java1.5版发行之前,没有泛型时,集合声明:// Now a raw collection type原创 2021-12-21 08:19:00 · 353 阅读 · 0 评论 -
Java:Effective java学习笔记之 接口只用于定义类型、类层次优于标签类
Java接口只用于定义类型1、 接口只用于定义类型1.1、常量接口2、 类层次优于标签类1、 接口只用于定义类型当类实现接口时,接口就充当可以引用这个类的实例的类型。因此,类实现了接口,就表明可以对这个类的实例实施某些动作。那么,不是为了这个目的而定义接口就是不恰当的1.1、常量接口有一种接口被称为常量接口,它不满足上述条件,这种接口没有包含任何方法,它只包含静态的final域,每个域都导出一个常量。public interface PhysicalConstants { static f原创 2021-12-17 08:20:27 · 615 阅读 · 0 评论 -
Java:Effective java学习笔记之 接口优于抽象类
Java接口优于抽象类接口优于抽象类1、接口和抽象类2、接口优点3、骨架类3.1、demo参考接口优于抽象类1、接口和抽象类Java中抽象类和接口的区别2、接口优点1、现有的类可以很容易的被更新,以实现新的接口。如果你前期编写了一个类A,后期有在系统中加入了一个新的接口B,当你想让前期编写的类来实现这个接口,你只用加上一句implementB,然后在类A中实现里面的方法即可,不会影响到以前的类对类A的使用。2、接口是定义mixin(混合类型)的理想选择。这一条主要说的是,一个类可以实原创 2021-12-16 08:16:52 · 524 阅读 · 0 评论 -
Java:Effective java学习笔记之 复合优先于继承
Java复合优先于继承复合优先于继承1、实现继承和接口继承2、在实际开发中继承的缺点2.1、子类依赖于其超类中特定功能的实现细节3、什么是复合?3.1、书上案例4、复合相比较于继承的优点和缺点5、何时使用继承,何时使用复合?参考复合优先于继承面向对象编程中,有一条非常经典的设计原则,那就是:组合优于继承,多用组合少用继承。同样地,在《阿里巴巴Java开发手册》中有一条规定:谨慎使用继承的方式进行扩展,优先使用组合的方式实现。1、实现继承和接口继承实现继承:当一个类扩展另一个类的时候接口继承:当一原创 2021-12-15 07:46:05 · 1119 阅读 · 0 评论 -
Java:Effective java学习笔记之 使类和成员的可访问性最小化
Java 使类和成员的可访问性最小化使类和成员的可访问性最小化1.信息隐藏2.为什么要使类和成员的可访问性最小化?3.如何最小化类和接口的可访问性?4.对于成员(域、方法、嵌套类和嵌套接口)访问级别5. 如何最小化一个类中成员的可访问性?参考使类和成员的可访问性最小化1.信息隐藏区分一个组件设计得好不好,唯一重要的因素在于,它对于外部的其他组件而言,是否隐藏了其内部数据和其他实现细节。设计良好的组件会隐藏所有的实现细节,把API与实现清晰地隔离开来。然后模块之间只通过它们的 API 进行通信,一个模块原创 2021-12-14 08:24:15 · 310 阅读 · 0 评论 -
Java:Effective java学习笔记之 考虑实现Comparable 接口
Java 考虑实现Comparable 接口考虑实现Comparable 接口1、Comparable接口2、为什么要考虑实现Comparable接口3、compareTo 方法的通用约定4、何时以及如何实现Comparable接口4.1、多重比较5、实现Comparable接口所需满足的需求6、总结参考考虑实现Comparable 接口1、Comparable接口public interface Comparable<T> { public int compareTo(T o);原创 2021-12-13 08:45:48 · 577 阅读 · 0 评论 -
Java:Effective java学习笔记之 始终要覆盖toString方法
Java 始终要覆盖toString方法始终要覆盖toString方法1、为什么要覆盖toString方法?2、始终要覆盖toString方法始终要覆盖toString方法1、为什么要覆盖toString方法?public class Person { protected String name; protected int age; public String getName() { return name; } public void setName(String原创 2021-12-10 08:55:42 · 458 阅读 · 0 评论 -
Java:Effective java学习笔记之 覆盖equals时总要覆盖hashcode
Java覆盖equals时总要覆盖hashcode覆盖equals时总要覆盖hashcode1. 什么是hashcode方法?2. hashcode相等与对象相等之间的关系:(保证设计是规范的前提下)3. 为什么要覆盖hashcode参考覆盖equals时总要覆盖hashcode1. 什么是hashcode方法?首先我们要了解一下散列表是什么?散列表就是我们平时所说的哈希表,是根据键值对(Key - value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加原创 2021-12-09 08:30:29 · 514 阅读 · 0 评论 -
Java:Effective java学习笔记之 覆盖equals时请遵守通用约定
Java覆盖equals时请遵守通用约定覆盖equals时请遵守通用约定1、为什么要覆盖equals2、需要覆盖equals方法的时机2.1、不需要覆盖equals方法的情况2.2、需要覆盖equals方法的情况2.2.1、自反性2.2.2、对称性2.2.3、传递性2.2.4、一致性2.2.5、非空性3、高质量equals方法的几个注意点3.1、规范案例4、除了上述的注意点之外,下面给出一些整体的告诫:4.1、==和equals()的区别5、总结参考覆盖equals时请遵守通用约定1、为什么要覆盖equ原创 2021-12-07 08:20:13 · 479 阅读 · 0 评论 -
Java:Effective java学习笔记之 避免使用终结方法
Java避免使用终结方法避免使用终结方法1、finalize()基本概念2、finalize()的执行过程3、为什么要避免覆盖并使用finalize方法?4、如果类中的资源确实需要被释放,我们应该怎么做?5、终结方法的利弊5.1、终结方法的好处5.2、终结方法的弊端6、总结参考避免使用终结方法1、finalize()基本概念学习过C++的同学看到终结方法(finalizer)应该马上就能想到C++中的析构函数(destructor)。Java中的终结方法果然和C++中的析构函数类似,会在对象被垃圾回收原创 2021-12-02 00:05:10 · 274 阅读 · 0 评论 -
Java:Effective java学习笔记之 避免创建不必要的对象
Java避免创建不必要的对象避免创建不必要的对象1、采用更合适的API或工具类减少对象的创建2、重用相同功能的对象3 、小心自动装箱(auto boxing)参考避免创建不必要的对象在Java开发中,程序员要尽可能的避免创建相同的功能的对象,因为这样既消耗内存,又影响程序运行速度。在这种情况下可以考虑重复利用对象。尽量少的创建对象,如果单个对象能够满足要求,就使用单例模式,反复重用唯一的对象。对一些创建成本低的对象来说,这样做带来的好处也许并不明显。但对于一些创建成本高的对象来说,这样做可以明显地节约原创 2021-12-01 07:39:00 · 932 阅读 · 0 评论