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. FileWriter简单用法并记录日志

    import java.io.*; import java.util.Date; /** * Created by Administrator on 2018/4/6. */ public class ...

  2. Apache Hadoop 和Hadoop生态圈

    Apache Hadoop 和Hadoop生态圈 Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户能够在不了解分布式底层细节的情况下.开发分布式程序.充分利用集群的威力进行快速 ...

  3. qemu -net tap配置上网

    1 该选项的用途 让qemu所在的宿主机器的tap网络接口和qemu的vlan n连接起来,从而进一步配置宿主机后,可以让qemu里面的操作系统可以通过vlan n里面的网卡上网. 2 真个系统的架构 ...

  4. Latex 1: 解决latex中遇到一个常见错误:"Improper alphabetic constant."

    1.问题: 本人是在WIN7下用texlive 2016,编辑器用的是WinEdt 10.1 ,运行如下代码: \documentclass{ctexbook} \begin{document} \t ...

  5. sabaki and leelazero

    https://tieba.baidu.com/p/5462772621?see_lz=1 http://zero.sjeng.org/ https://www.jianshu.com/p/a4ba1 ...

  6. hibernate 的缓存机制

    这是面试中经常问到的一个问题,楼主可以按照我的思路回答,准你回答得很完美,首先说下Hibernate缓存的作用(即为什么要用缓存机制),然后再具体说说Hibernate中缓存的分类情况,最后可以举个具 ...

  7. C++ 多线程与并发

    1. 非原子操作 这些非原子操作在被编译为汇编代码后不止一条指令. 自加.自减少: new 关键字: 申请内存: 调用构造函数: pInst = new T; // 对于这样一个赋值语句,更是包含了如 ...

  8. Activity快速入门理解

    ​ 在Java领域,JBPM和Activity是两个主流的工作流系统,而Activity的出现无疑将会取代JBPM(Activity的开发者就是从Jbpm开发者出来的 1. 1个插件 在Eclipse ...

  9. hdu 1719

    Friend Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  10. vue 生命周期钩子 过滤器 计算属性

    每一个Vue实例在被创建之前都要经过一系列的初始化过程.例如,实例需要配置数据观测.编译模板.挂载实例到DOM,然后在数据变化时更新DOM,在这个过程中,实例也会调用一些生命周期钩子,这就给我们提供了 ...