疯狂Java讲义 7.9分
读书笔记 全书笔记
游侠GS

不是学习笔记,是工作一段时间后重读做的梳理笔记,把对自己值得一提的知识点提取出来备查。目前 Java 相关工作近两年,Java Web 和 Android 经验各半。

位运算符(依然不会)

逻辑运算符的短路概念 短路:&&、|| 判断是若无必要则不执行后一判断语句 不短路:&、| 反之,无论如何前后判断语句都会执行

初始化块(概念生疏) static {} 类初始化块 / {} 对象初始化块 初学难以理解,本质是深入理解类与对象,然后自然知道类初始化和对象初始化的时机了。

equals 和 == 对象比较与数值比较的区别,新手一大难点。同时也要理解“不可变对象”的概念。

抽象类:模板(对内) 接口:契约(对外) 其实是为工程学服务的。抽象类是“模板”,规范代码,减少重复代码。接口是“契约”,用来“解耦”,使得开发更灵活,更有助于多人协同开发(这也是 Java 的突出优点)。 “解耦”即“解除耦合”。“耦合”即“关系、联系”。这个词用在这真是晦涩,但实在找不出更简洁易懂的词了。

静态方法 常见于工具类。除了实现单例模式等,一般不太会在一个类里面混写静态与非静态方法。

垃圾回收机制、手动回收(概念模糊)

Jar 文件及打包(不会)

——————

03-14

BigDecimal类(没用过) float / double 两种基本浮点数类型易造成精度丢失,需使用此类型进行计算。 浮点数计算需要注意。并且这个问题在其他语言中也可能存在(比如 JavaScript)

正则表达式(不熟悉) 正则匹配功能强大,应用广泛,但不常使用的话很容易遗忘。每次用的时候基本都要重看一遍规则。

——————

03-17

Java 集合 Iterator 迭代器 做 .Net 项目使用到 C# 的 Linq 库,提供了许多被称为“函数式编程”的方法,所以看到这里的时候感到熟悉。本质是方便书写遍历方法的语法糖,使得代码更简洁清晰。 “函数式编程”这个说法与 Java 传统的“面向对象编程”一样,都是一种“编程范式”,很有趣。 “Java 集合”这一章提到很多“Java 8 新方法”都是针对函数式编程的新特性,包括后面介绍的“流处理”也是很实用的样子。

泛型 <? extends T> <? super T> (没用过) 分别表示“类型通配符上限”和“类型通配符下限”,用于对泛型范围进行限制。 泛型属于“好理解又好用”的知识点,重要又不需过多解释。

异常处理 即使在“try块”或“catch块”中 return 或 throw,仍会执行“finally块”中的方法再结束。所以不要在“finally块”中写 return 或 throw,以免出错。 一般“不得不”用到异常的地方是在各种 IO 方法中,获取一些资源、通信等时,由于过程中不可靠性使得需要 catch 一些异常,并在 finally 中释放资源。 记得有句话是“不要将异常处理当做正常逻辑的一部分使用”,也就是说那些可以避免的异常(如空值检查)尽量避免比较好,这样似乎对代码效率和可读性更好。

AWT 和 Swing(略过) Web 开发不需要看。即使开发客户端,Swing 也显得过时了,不如去学习 html5 。

——————

03-18

Java IO NIO(看蒙了) 这部分内容最好结合实例看,先学会常见流的读写,然后与 NIO 方式实现对比。

多线程 synchronized wait() notify() notifyAll() 同步线程间等待/唤醒 ReentranLock 互斥锁 同时只能被一个线程持有 BlockingQueue 阻塞队列 生产者-消费者模型 Executors 线程池(的工厂类)

——————

03-20

URL protocol://host:port/resourceName

完结撒花!这本砖书正式告一段落,下一轮看到 JAVA 的话,会看些更深入些的书吧!

0
《疯狂Java讲义》的全部笔记 1篇
豆瓣
免费下载 iOS / Android 版客户端