《Java编程思想》读书笔记

时间:2024-01-04 20:51:56

前言

这个月一直没更新,就是一直在读这本《Java编程思想》,这本书可以在Java业界被传神的一本书,无论谁谈起这本书都说好,不管这个人是否真的读过这本书,都说啊,这本书很好。然后再看这边书的厚度,哇塞,厚的真的不止一点点,所以很多人看了没多久就放弃了,看不下去,但是基于它的厚度,就说,这是一本好书。也有人说,看了没什么用的一本书,甚至还去嘲笑那些正在看的人,说还不如看点实际的技术。那么在我的世界里,如果一本书没有读过,如果妄加评论的话,没有任何的意义。所以我真的仔仔细细读了下来,书上也写了很多的笔记,但是我不会把它们都写下来,因为太多了。

不过,确实要把这么厚的书读薄,是真的不容易。我想了很多种方式去记录我的读书笔记,但是最后都觉得不好,我觉得我的笔记应该有下面的几个作用。

1、作为一个线索,以后我自己能快速的回顾和查询。

2、已经知道的,不提及;不知道的,重点记录。

3、让即使没有看过的人也能知道里面到底有什么值得他们去看的。

所以最后我决定用一种提问的方式,或者是一种陈述的方式,来记录我的读书笔记,如果你能回答出下面的提问,或者能理解陈述的内容,那么证明书中的内容其实你已经了解。如果回答不出,或者答案不清晰不确定,那么你可以网上去查询这个问题的答案,或者翻阅书籍。

下面就是我记录的所有笔记。

笔记部分

1、什么是OOP?

2、public、private、protected的权限

3、什么是组合?什么是继承?

4、Java内存的分配方式

5、对象和对象的引用

6、java虚拟机垃圾回收的基本策略;停止-复制;标记-清扫;

7、控制对成员的访问权限是为了:让用户不要触碰他们不该触碰的部分,为了让类库的设计者可以更改类的内部工作方式

8、组合和继承如何选择?

9、final、static、和其对应方法和块加载和初始化的顺序

10、多态的作用是消除类型之间的耦合关系,多态是一项让程序员:“将改变的事物与未边的事物分离开来”的技术。

11、用继承表达行为间的差异,并用字段表达状态上的变化

12、接口和抽象类的对比

13、匿名内部类

14、泛型的作用是可以在编译期防止将错误类型的对象放置到容器中

15、容器之间的对比,如ArrayList和LInkedList等,再比如set、hashset、treeset等

16、优先队列PriorityQueue

17、异常处理的一个重要原则是“只有在你知道如何处理的情况下才捕获异常”

18、“报告”功能是异常的精髓所在

19、String的不可变性

20、StringBuffer和StringBuilder

21、所有的类都是在对于其第一次使用时,动态加载到JVM中的

22、加载-》链接-》初始化

23、instanceof是什么方法?

24、什么是动态代理?

25、利用泛型方法封装工具类

26、在泛型代码内部,无法获得任何有关泛型参数类型的信息。

27、数组区别于其他容器的三个方面:效率,类型,保存基本类型的能力

28、HashMap的内部是如何实现的?

29、使用I\O操作文件时要注意什么?

30、什么是对象序列化

31、enum和switch是一对冤家

32、注解为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后的某个时刻方便的使用这些数据。

33、注解能帮助我们避免编写累赘的部署描述文件。

34、进程和线程,进程是运行在它自己地址空间内的自包容的程序,一个线程是在进程中的一个单一的顺序控制流。

35、实现线程的两种方式

36、线程池的作用

37、加锁防止两个任务访问相同的资源,隐式,显式

38、volatile关键字是做什么用的

39、wait与notify和notifyAll

40、死锁的四个条件:至少有一个不能共享的资源、至少有一个任务它必须持有一个资源且正在等待获取一个当前被别的任务持有的资源、资源不能被任务抢占,必须有循环等待

41、防止死锁只要破坏四个条件中的任意一个

42、有很多免锁容器如ConcurrentHashMap等

43、确定多个线程不会同时读取和改变一个资源,这就是线程产生的最大难题

个人总结

作为现代快节奏的生活之下,能静下心来看书,着实不容易,所以我都觉得我看到的不够仔细,很多时候也漏下了很多重点。不过我相信你能找到它们的。

对于这本书来说,读完之后我发现有几个你需要注意的地方

1、这本书之所以大家都认为它好,是因为它涵盖了JAVA语言几乎所有的基础,它就如同一个博物馆,所有的藏品都已摆放整齐。

2、这本书的代码比文字更厉害,我可以准确的说,我在书上的笔记几乎很多都是在给代码写注释,同样是一页,代码比文字至少要花费两倍的时间去看,如果你直接跳过,那么你将错过很多精彩的部分。

3、设计模式在这本书里面灵活的穿插着,我真的庆幸我在看这本书之前看了设计模式,不然看书的过程中很多时候会不理解它说的设计模式是什么意思,从而看了之后,我也更加理解了一些设计模式的使用。

4、现在网络发达,很多问题网上都有现成的答案,所以很少会再翻开书去查找,而且这本书太重了,不适合携带,所以请你看书的时候保持一颗心,一遍理解,不懂就记。

5、尽信书不如无书,现在发展这么快,JAVA本身也不断的发展,1.9都要有了,所以很多书上的东西或许过时,很多已经在历史的长河中隐去了,所以看书的时候多看看外面的世界。