Java 是一种安全的语言,在没有本地方法的情况下,它不受缓冲区溢出、数组溢出、非法指针和其他内存损坏错误的影响。即使使用一种安全的语言,也可能在不经意间提供修改对象内部状态的方法。例如,下面的类表示一个不可变的时间段:java // Broken "immutable" time period class public final class Period { private...
后续一定把它看几遍写写心得,因为这本Effective Java的作者是JDK的作者之一 ,百度百科说的他是集合框架创办人,写JDK的人肯定是对Java了如指掌了,他写的建议书应该是呕心沥血的,所以我也建议java的从业者都去看一看。
每一版前面都有作者自己写的前言,反映了当时最新的Java语言进展和作者的心境。作为第3版,就有了三篇前言。 第3版的前言比较有意思的地方是引用了Java之父和C++之父的两种观点,值得摘录。 1997 年,当时 Java 刚诞生不久,Java 之父詹姆斯·戈斯林(James Gosling)将其描述为一种“相当简单”的“蓝领语言”[Gosling...
《Effective Java》是2019年机械工业出版社出版的图书,作者是约书亚·布洛克(Joshua Bloch)。内容简介 Java之父James Gosling鼎力推荐、Jolt获奖作品全新升级,针对Java 7、8、9全面更新,Java程序员必备参考书。包含大量完整的示例代码和透彻的技术分析,通过90条经验法则,探索新的设计模式和语言习惯用法,帮助读者更加...
通过实现Comparable接口,可以让你的类与所有依赖此接口的通用算法和集合实现进行互操作。 只需少量的努力就可以获得明显的效果。 几乎Java平台类库中的所有值类以及所有枚举类型(条目 34)都实现了Comparable接口。 如果你正在编写具有明显自然顺序(如字母顺序,数字顺序或时间顺序)的值类,则应该实现Comparable接口: ...
Effective Java (对象通用方法) 八、覆盖equals时请遵守通用约定: 对于Object类中提供的equals方法在必要的时候是必要重载的,然而如果违背了一些通用的重载准则,将会给程序带来一些潜在的运行时错误。如果自定义的class没有重载该方法,那么该类实例之间的相等性的比较将是基于两个对象是否指向同一地址来判定的。因此对于...
一文读懂《Effective Java》第42条:慎用可变参数 在Java1.5发行版中,加入了可变参数列表方法,称为variable arity method(可匹配不同长度的变量的方法)。 可变参数机制:通过创建一个数组,数组的大小为在调用位置所传递的参数数量,然后将参数值传到数组中,最后将数组传递给方法。
本书的源代码见 jbloch/effective-java-3e-source-code(github.com/jbloch/effective-java-3e-source-code)。 目录 01. 考虑使用静态工厂方法替代构造方法.md(github.com/it-ebooks/effective-java-3rd-chinese/blob/master/docs/notes/01. 考虑使用静态工厂方法替代构造方法.md) ...
Effective java 中文版(第2版)的创作者· ··· 约书亚·布洛克作者 作者简介· ··· Joshua Bloch是Google公司的首席Java架构师。是Jolt大奖的获得者。他曾是Sun公司的杰出工程师,和Transarc公司的高级系统设计师。Bloch曾带领团队设计和实现过无数的Java平台特性,包括JDK 5.0语言增强版和获奖的Java Collections...