
Effective Java
文章平均质量分 78
俊炫。
打工人
展开
-
Effective Java3.6-避免创建不必要的对象
6 避免创建不必要的对象主要内容:讲述了在使用对象的时候前,先考虑一下是否需要创建,如果这个对象是不需要/不会改变,就最好不要重复创建。接着要考虑现有的代码中是否会出现重复构建同款实例的情况,如果出现应该如何避免,比如正则和自动装箱。最后反过来说“小对象随便搞,重量级注意点搞,确实没法搞就用保护性拷贝的方法复制一个同款对象”。主要目标:1.String不要随便用new String的方法。2.String的正则判断最好自行实现一个正则对象。3.优先是利用类型而不是装箱的基本类型,即多用int,少用In原创 2021-04-27 17:57:04 · 228 阅读 · 1 评论 -
Effective Java3.5-优先考虑依赖注入来引用资源
5 优先考虑依赖注入来引用资源主要内容:讲述在使用静态工具类,Singleton类时,最好不要依赖于其他的底层资源类,意味着静态工具类和Singleton最好是独立的类,即使需要用到其他的参数,也最好不要引用其他对象,更不要是一个类的同种变形(比如它的子类们或者组合类)主要目标:使用静态工具类,Singleton类时不引用特定的(底层)资源。创建实例时就将资源(另一个对象)传到构造器。使用Supplier来控制资源(另一个对象)的类型(上界)。使用资源工厂来获得资源,并将工厂作为“另一个对象”作为传到原创 2021-04-27 15:20:26 · 272 阅读 · 1 评论 -
Effective Java3.4-通过私有构造器强化不可实例化的能力
4 通过私有构造器强化不可实例化的能力主要内容:讲述存在一些类不希望被实例化的时候,应该使用私有构造器。主要目标:实现自己的工具类的时候,要注意实现私有构造器实际应用场景:java.util.Math,java.util.CollectionsEffective Java知识点摘录+白话说明企图通过将类做成抽象类来强制该类不可被实例化是行不通的 。这样的抽象类是可以被继承的,既然能被继承,那就说明了可以通过子类的实例化间接将父类实例化(我不想被实例化,但我儿子实例化导致我也跟着被实例化了原创 2021-04-27 11:15:03 · 202 阅读 · 0 评论 -
Effective Java3.3-用私有构造器或者枚举类型强化 Singleton 属性
3 用私有构造器或者枚举类型强化 Singleton 属性主要内容:讲述了如果需要使用singleton,可以通过公有静态成员/公有静态工厂方法/单元素的枚举类型实现。主要目标:判断singleton是否需要继承一个超类,如果不需要,优先考虑使用枚举类型来创建。实际应用场景:暂无考虑到Effective Java知识点摘录+白话说明实现 singleton有两种常见的方法,这两种方法都要保持构造器为私有的,并导出公有的静态成员,以便允许客户端能够访问该类的唯一实例。在第一种方法中,公有静态原创 2021-04-26 17:37:00 · 176 阅读 · 0 评论 -
Effective Java3.2 遇到多个构造器参数时要考虑用构建器
2 遇到多个构造器参数时要考虑用构建器主要内容:讲述在一个类中如果存在着大量的参数(必选参数和可选参数),有3个方法来创建对象:重叠构造器方法/set方法/Builder方法,应该选择Builder模式来创建对象。主要目标:在针对大多数(4个或以上)参数是可选或者是相同类型的情况下,应该优先考虑使用Builder模式实际应用场景:4个参数或者有许多可选参数的类Effective Java知识点摘录+白话说明简而言之,重叠构造器模式可行,但是当有许多参数的时候,客户端代码会很难缩写, 并且仍原创 2021-04-26 11:28:16 · 175 阅读 · 0 评论 -
Effective Java3.1-用静态工厂方法替代构造器
1 用静态工厂方法替代构造器主要内容:讲述静态工厂方法与构造器方法的优劣主要目标:在实际开发的时候,优先考虑静态工厂方法,然后考虑有条件的构造器方法,最后才是最简单的构造器方法实际应用场景:工厂模式,单例模式Effective Java知识点静态工厂方法与构造方法不同的第一大优势在于,它们是有名称。一般情况下,都会有一个默认无参构造器方法,但是很多时候需要提供特定的参数与参数顺序的构造器方法,这样容易导致出现很多个含参构造器方法,而一旦参数类型是有着连续的几个相同,会很容易导致给错数据的原创 2021-04-25 16:41:06 · 136 阅读 · 0 评论