读《Java编程思想(第4版)》⼀点收获
Java编程思想真的是⼀本神书,时隔这么多年再看,还是有不⼩的收获的,这么多年以来,只顾得上写码,好多基本知识都忘得⼀⼲⼆净了,重新复习⼀下,甚好。下⾯来说⼀下⾃⼰的收获。
对象导论重点写了什么是对象,如何更好的创建⼀个对象,对初学者帮助⾮常⼤。
可以认为,⼈们所能够解决问题的复杂性直接取决于抽象的类型和质量。
1)万物皆为对象。
2)程序是对象的集合,它们通过发送消息来告知彼此所要做的
3)每个对象都有⾃⼰的由其他对象所构成的存储。
4)每个对象都拥有其类型。
5)某⼀特定类型的所有对象都可以接收同样的消息。
将对象看做是服务提供者还有⼀个附带的 好处:它有助于提⾼对象的内聚性。⾼内聚是软件设计的基本质量要求之⼀:这意味着⼀个软件(例如⼀个对象,当然它也有可能是指⼀个⽅法或者⼀个对象库)的
各个⽅⾯“组合”的很好。⼈们在设计对象锁⾯临的⼀个问题是,将过多的功能都塞在⼀个对象中。
所有类都是单根继承,即所有类都继承⾃object。
单根继承结构使垃圾回收器的实现变得容易很多,⽽垃圾回收器恰恰是java相对c++重要的改进之⼀,这个是之前⾃⼰没有在意的,为什么java是单根继承。Java的继承⾃单根基类object只能以⼀种⽅式创建对象(在堆上创建)两个特性结合起来,使得的 java的编程过程⽐
c++要简单多。
第⼆章讲到⼀切都是对象,最重要的收获是2.2.1部分,数据存储到什么地⽅。详细讲了寄存器、堆栈、堆、常量存储、⾮DRM存储。2.9部分讲了编码风格,⼤篇幅讲解了我们该怎么正确的写注释。(不知道跟代码整洁之道⽐起来怎么样)。
第三章主要讲了操作符,这章没什么特别的,Java⽼鸟基本可以忽略,新⼿还是要重点看的。
第四章收获了⼀个⼩的知识点:必须确保每⼀条代码路径都有⼀个返回值,void⽅法会有默认的return。我之前认为void就是没有返回。
第五章 初始化与清理:详细讲解了对象创建的时候如何分配空间,以及垃圾回收机制是怎么执⾏的。
垃圾回收机制这块感觉掌握的还不是太牢靠,估计要⼆刷三刷了。补个⼩知识点:构造器本质上也是静态⽅法,所以在⾸次创建对象时 Java解释器必须查类路径。枚举可以在switch中使⽤,这个也是我之前不知道的。
第六章 访问权限控制 主要讲解的是修饰符,有句话写的特别好:使代码更加易于理解就意味着节省了⼤量的⾦钱。也有之前我不知道的⼩知识点:类中所有的private⽅法都是隐式指定为final的。
第七、⼋、九、⼗章分别是 复⽤类、多太、接⼝、内部类,多是理论类型的。但是在10.6末有句话我⽐较在意:优先使⽤类⽽不是接⼝。这⾥我不⼤明⽩,现在⼴泛使⽤的 难道不是接⼝么?不是很理解。10.8重点写了我们为什么要内部类,平时在开发时,基本没有⽤过,还需再学习并实践。
第⼗⼀章 持有对象,主要讲了Java容器类库的⽤途,主要有Collection、Map、List。
第⼗⼆章 主要讲了异常处理,这⼀块没有细看,平时写业务代码的时候⼤多都直接捕获Exception[笑哭]。
第⼗三、⼗四、⼗五、⼗六章分别讲解了字符串、类型信息、泛型和数组。在类型信息⾥有讲解动态代理部分。也看的不是特别明⽩,跟我之前理解的好像不⼤⼀样。此处mark,⽇后再看。
第⼗七章 容器的深⼊研究⾮常详细的讲解了⼏个Map的实现类原理以及应⽤场景,收获颇丰,喜欢的
朋友可以去撸⼀遍。第⼀次知道了hashMap⽤的是散列表实现的。
第⼗⼋章 讲的是java 的IO操作,本章节通过⼤量的⽰例来讲解的。
第⼗九章 枚举重点讲了枚举的特性以及应⽤。⽼实说,我不知道为什么要放到这么靠后的地⽅。
第⼆⼗张 注解 以前只知道⽤,完全不知道为什么这么⽤。看了这个才知道三种标准注解和四种元注解是什么,真是菜啊我!
第⼆⼗⼀章 并发 重点讲解多线程的应⽤,前⾯讲了线程、线程池、后⾯讲了死锁。本张也是通过⼤量的代码⽰例来讲解的,因为现在都是借助⼯具在进⾏多线程编程的,回到最原始的状态下看多线程,还是蛮有意思的。
第⼆⼗⼆章 图形化,没怎么看,因为已经好久没⽤过了,现在Java最擅长的还是web开发。
java线程池创建的四种
以上是本书的⼤致内容,做个简单的笔记给⾃⼰看,像容器、多线程总这些,回头还得继续深⼊研究。其实Java基础知识掌握好,⾜以解决⾃⼰⽇常百分之⼋⼗以上的问题了,可是有些东西还是想弄清楚原理,哎~强迫症。
最后、希望⾃⼰能够每天进步⼀点点,加油!