![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
effective-java
benhuo931115
这个作者很懒,什么都没留下…
展开
-
《Effective Java》——学习笔记(对于所有对象都通用的方法&类和接口)
对于所有对象都通用的方法第8条:覆盖equals时请遵守通用约定不覆盖equals方法的情况类的每个实例本质上都是唯一的不关心类是否提供了“逻辑相等”的测试功能超类已经覆盖了equals,从超类继承过来的行为对于子类也是合适的类是私有的或是包级私有的,可以确定它的equals方法永远不会被调用,在这种情况下,应该覆盖equals方法,以防它被意外调用:@Overridepublic boo原创 2018-02-26 14:34:27 · 445 阅读 · 0 评论 -
《Effective Java》——学习笔记(泛型&枚举和注解)
泛型第23条:请不要在新代码中使用原生态类型如果使用原生态类型,就失掉了泛型在安全性和表述性方面的所有优势,比如不应该使用像List这样的原生态类型,而应该使用如List<Object>、List<String>这样的类型第24条:消除非受检警告用泛型编程时,会遇到许多编译器警告:非受检强制转化警告、非受检方法调用警告、非受检普通数组创建警告,以及非受检转换警告。如:Set<Lark> exalta原创 2018-02-28 16:46:40 · 558 阅读 · 0 评论 -
《Effective Java》——学习笔记(创建和销毁对象)
创建和销毁对象第1条:考虑用静态工厂方法代替构造器静态工厂方法与公有的构造器相比,具有以下几大优势:优势一:静态工厂方法有名称具有适当名称的静态工厂更容易使用,产生的客户端代码也更容易阅读,当一个类需要多个带有相同签名的构造器时,就用静态工厂方法代替构造器,并且慎重地选择名称以便突出它们之间的区别优势二:不必在每次调用它们的时候都创建一个新对象静态工厂方法能够为重复的调用返回相同对象,这样有助于原创 2018-02-24 18:03:17 · 448 阅读 · 0 评论 -
《Effective Java》——学习笔记(方法&通用程序设计)
方法第38条:检查参数的有效性在方法体的开头处检查参数,对于公有的方法,要用Javadoc的@throws标签在文档中说明违反参数值限制时会抛出的异常/** * @throws ArithmeticException if m is less than or equal to 0 /public BigInteger mod(BigInteger m){ if(m.signum() <原创 2018-03-05 13:42:25 · 354 阅读 · 0 评论 -
《Effective Java》——学习笔记(序列化)
序列化第74条:谨慎地实现Serializable接口实现Serializable接口而付出的最大代价是,一旦一个类被发布,就大大降低了“改变这个类的实现”的灵活性,并且以后又要改变这个类的内部表示法,结果可能导致序列化形式的不兼容序列化会使类的演变受到限制,这种限制的一个例子与流的唯一标识符有关,通常它也被称为序列版本UID。如果没有在一个名为serialVersionUID的私有静态final的原创 2018-03-19 15:10:27 · 435 阅读 · 0 评论 -
《Effective Java》——学习笔记(异常&并发)
异常第57条:只针对异常的情况才使用异常异常应该只用于异常的情况下:它们永远不应该用于正常的控制流设计良好的API不应该强迫它的客户端为了正常的控制流而使用异常第58条:对可恢复的情况使用受检异常,对编程错误使用运行时异常Java程序设计语言提供了三种可抛出结构:受检的异常、运行时异常和错误如果期望调用者能够适当地恢复,对于这种情况就应该使用受检的异常,通过抛出受检的异常,强迫调用者在一个catch原创 2018-03-06 17:38:15 · 883 阅读 · 0 评论