Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices.
最近终于做完了Effective Java的读书笔记, 发布出来与大家共享.

Background

看了历史, 写第一篇笔记居然是2016年的事情了, 中间半途而废搁置了好长时间, 去年生病的时候捡起来看了一些, 今年终于看完了.

做这个笔记的目的主要是为了个人学习, 把一本书读薄, 也留下以后可以查阅翻阅的资料. 写博客这么多年, 我觉得有一个很大的好处是, 有时候会有一个点, 或者有个什么相关的技术细节, 记得自己曾经归纳整理过, 迅速找到, 很有帮助.

读过书以后确实也能对自己更有信心一点, 毕竟知识的小圈圈又往外扩展或加深了一丢丢. 当然可能不是每一本书都有空要做个学习笔记.

学习笔记对别人的作用, 可以作为一个节约时间的摘要预览吧. 毕竟现在这么忙(或者浮躁), 碎片阅读大行其道, 分章节地看看读书笔记一会儿就可以完成了. 对高手来说, 知识点已经知道了, 大概看一下; 对小白来说, 作为一个摘要来阅读; 对所有水平的人, 有兴趣深入的条目再深入研究.

Github Repo

笔记整理放在Github上了:
Github: Effective-Java-Reading-Notes

最开始做这个笔记的时候Effective Java还是第二版, 这次先把第二版的中文书看完了, 之后又对照着第三版的英文版过了一遍自己的笔记, 把新增的部分补上, 已有的部分也做了一些修正.

  • 第二版笔记: branch: 2nd-edition, tag: v2
  • 第三版笔记: branch: 3rd-edition, tag: v3
  • 默认的master分支上是第三版的笔记.

注意做这些笔记的时候是基于个人的阅读, 只记下了自己觉得需要强调或者归纳整理的部分, 如果有兴趣深入研究, 还是看原书文章比较好. (英文好的话推荐读原版, 第一手资料.)

欢迎指正.

最后, 欢迎关注微信公众号: 圣骑士Wind

Effective Java读书笔记完结啦的更多相关文章

  1. Effective java读书笔记

    2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己 计在16年要看12本书,主要涉及java基础.Spring研究.java并发.J ...

  2. Effective Java 读书笔记(一):使用静态工厂方法代替构造器

    这是Effective Java第2章提出的第一条建议: 考虑用静态工厂方法代替构造器 此处的静态工厂方法并不是设计模式,主要指static修饰的静态方法,关于static的说明可以参考之前的博文&l ...

  3. Effective Java 读书笔记之九 并发

    一.访问共享的可变数据时要同步 1.synchronized关键字既然保证访问的可见性也能保证原子性.而volatile修饰符只能保证变量的线程可见性. 2.增量操作符等不是原子性,多线程操作时可能导 ...

  4. Effective Java 读书笔记之七 通用程序设计

    一.将局部变量的作用域最小化 1.在第一次使用变量的地方声明 2.几乎每个变量的声明都应该包含一个初始化表达式:try-catch语句是一个例外 3.使方法小而集中是一个好的策略 二.for-each ...

  5. Effective Java 读书笔记之一 创建和销毁对象

    一.考虑用静态工厂方法代替构造器 这里的静态工厂方法是指类中使用public static 修饰的方法,和设计模式的工厂方法模式没有任何关系.相对于使用共有的构造器来创建对象,静态工厂方法有几大优势: ...

  6. [Effective Java读书笔记] 第二章 创建和销毁对象(1~7)

    我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3537576.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...

  7. Effective Java读书笔记——第三章 对于全部对象都通用的方法

    第8条:覆盖equals时请遵守通用的约定 设计Object类的目的就是用来覆盖的,它全部的非final方法都是用来被覆盖的(equals.hashcode.clone.finalize)都有通用约定 ...

  8. Effective Java 读书笔记(五):Lambda和Stream

    1 Lamdba优于匿名内部类 (1)DEMO1 匿名内部类:过时 Collections.sort(words, new Comparator<String>() { public in ...

  9. Effective Java 读书笔记(四):泛型

    1 不要使用原始类型 (1)术语 术语 例子 参数化类型(Parameterized type) List<String> 实际类型参数(Actual type parameter) St ...

随机推荐

  1. STM32通过调用库函数进行编程

    1.调用库函数编程和直接配置寄存器编程的差别: 2.CMSIS标准: 3.STM32库函数的组织: 4.程序例举: 调用库函数实现通过USART发送数据(26个大写的英文字母) 首先:在主函数部分先要 ...

  2. 内存充足,但是为什么hadoop3无法启动nodemanager

    [root@hadoop3 hadoop]# xloStarting namenodes on [hadoop3]上一次登录:三 12月 27 16:06:01 CST 2017pts/24 上Sta ...

  3. H5的localStorage简单存储删除

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. The input stream is not a valid binary format.

    The input stream is not a valid binary format. The starting contents (in bytes) are: 53-79-73-74-65- ...

  5. openfire重新配置数据库oracle、mysql

    1.openfire重新配置设置: 删除target/openfire/conf/openfire.xml中的 <setup>true</setup> 2.删除浏览器之前访问过 ...

  6. I.MX6 Android stlport 使用

    /****************************************************************** * I.MX6 Android stlport 使用 * 说明: ...

  7. 基于 IOCP 的通用异步 Windows Socket TCP 高性能服务端组件的设计与实现

    设计概述 服务端通信组件的设计是一项非常严谨的工作,其中性能.伸缩性和稳定性是必须考虑的硬性质量指标,若要把组件设计为通用组件提供给多种已知或未知的上层应用使用,则设计的难度更会大大增加,通用性.可用 ...

  8. 推荐使用集串口,SSH远程登录和FTP传输三合一工具MobaXterm

    在以前的资料里,串口和SSH远程登使用SecureCRT,window与ubuntu数据传输使用filezilla,窗口切换来切换去,麻烦也眼花缭乱.有没有一个工具搞定串口.SSH和FTP?有!它就是 ...

  9. math.floor()函数的用法

    floor() 返回数字的下舍整数. 语法 以下是 floor() 方法的语法: import math math.floor( x ) 注意:floor()是不能直接访问的,需要导入 math 模块 ...

  10. Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化

    ylbtech-Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化 1.返回顶部 1. Java 实例 - 字符串格式化  Java 实例 以下实例演示了通过 f ...