Java编程思想阅读收获
15年8月份买了一本Java编程思想第四版中文版。之所以买中文版是因为我试读了同事的英文版发现自己英语水平还是有限,单词虽然认识,但对很多句子把握不准,这样看书太慢了,要理解英文还要理解技术有些hold不住。买了之后断断续续的看到现在,看了400多页了,看到了泛型一章。从15年8月份到元旦,中间还看了本周志明著的《深入理解java虚拟机-JVM高级特性与最佳实践》对JVM有了初步的了解。对于内存布局、垃圾回收、类加载、字节码等概念不再那么模糊。
Java编程思想一书已经读了正好一半了,很有感触。想在这里写下来分享给那些像我这样想看这本书却迟迟不敢开始的人们。
1)Java编程思想这本书给我的最大印象是介绍技术比较详细而深入,不仅告诉你怎么做,而且会说为什么Java是这样做的。作者Bruce Eckel也是C++编程思想的作者,对C++和Java的认识都是大师级的,所以他经常会对比Java和C++,告诉你Java都替程序员避免了C++的哪些坑,某些实现Java比C++好在哪里,又差在什么地方。这样的讲述其实就像在跟大师对话一样,不但能学到Java的知识,还能学习大师的思维。
2)看这本书时,一定要把书中的例子源码下载下来,自己真正的跑例子,有什么疑问直接可以通过修改例子验证自己的想法。这比单纯的看书学习效果是要好非常多的。
3)虽然网上很多人说这本书是入门级的,初学者必读。但我不推荐没有Java基础,想学习Java的人通过这本书入门Java。因为这本书讲得太详细,太厚了,很多的内容不只是基础,拿这本书入门可能会令人感到沮丧。找一本两三百页的书,或者从网上看一些Java入门的视频是比较好的选择。
4)上面也说到了,这本书里一些内容不是入门知识,需要对Java有一定的认识以及足够多的研究之后才能弄懂书中的一些内容。对我而言,本书的泛型一章中的一些内容我看得晕晕乎乎的,只能理解泛型的大概,没能再深入。所以,看这本书时,我的建议是:如果觉得书中一些地方挺难懂,也要硬着头皮读下去,书中例子认真研究,至少都看懂,跑一遍。实在不懂的,查资料也搞不懂的,先跳过去,等读第二遍、第三遍的时候说不定会有恍然大悟的感觉。
5)看这本的中间我还看了一本书《深入理解Java虚拟机-JVM高级特性与最佳实践》,收获非常大。而且我通过读《深入》这本书养成了一个好习惯:有些内容读一遍很多不大懂;但第二天读第二遍的时候轻松了不少,理解了不少;过几天再读第三遍的时候发现都能懂了!所以在读《Java编程思想》的时候我也用了这种读书方法,一遍读不懂的,读两遍,过几天再读一遍。这样读下来,发现虽然书读的比较慢,但理解的比较好,收获很大。
6)还有一点是,读书的时候要相互对照,比如阅读《Java编程思想》的持有对象一章的时候,我会对照《深入理解Java虚拟机》一书中的类加载一章以及JVM内存布局与对象创建的章节。这样理解起来,Java语言层面的东西理解了,JVM层面的知识也知道了。效果非常好。
另外,很多人说技术更新太快,读书都是比较过时的东西,最好是去官网看文档。我同意这个观点,我也会去看文档。但是读书还是很有必要的,为什么呢?在我看来,读书不仅能学到想要的技术,更重要的是书里的文字都是作者精心完成的,是作者思想的精华,读好书就像在跟大师交流,你能学习到大师们的思考方式,获得大师们才有的眼界。这是看文档得不到的。当然,不能买太过时的书。尽量买大师写的、最新版的。吐槽一下:坐落于五道口的国内某一流大学里的一个出版社经常出一些技术书,大家要擦亮眼睛,他们很会抄袭,那种书就是为了挣钱。买书尽量买NB的个人的,那是作者的心血,都是精华。一大堆人写的,算了吧,那是书吗?知识的堆积而已,根本没有思想在里面。当然,我不否认那里有NB的人写了NB的书,我只是吐槽一下鸟大了什么林子都有,买书要擦亮双眼。
Java编程思想阅读收获的更多相关文章
- 【Java编程思想阅读笔记】Java数据存储位置
Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new ...
- List接口方法使用(PS:Java 编程思想阅读小结)
1.用代码说话 package JavaProject; import java.util.*; public class A{ public static void main(String[]arg ...
- java编程思想阅读记录
第五章:初始化与清理 1.构造器确保初始化 构造器采用与类名相同的方法. 创建对象时,将会为对象分配存储空间,并调用相应的构造器.这就确保了在你能操作对象之前,它就已经恰当的被初始化了. 垃圾回收器负 ...
- 《Java编程思想》阅读笔记二
Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...
- 《Java编程思想》阅读笔记一
Java编程思想 这是一个通过对<Java编程思想>(Think in java)第四版进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会 ...
- JAVA编程思想——分析阅读
需要源码.JDK1.6 .编码风格参考阿里java规约 7/12开始 有点意识到自己喜欢理论大而泛的模糊知识的学习,而不喜欢实践和细节的打磨,是因为粗心浮躁导致的么? cron表达式使用 设计能力.领 ...
- [Java编程思想-学习笔记]第3章 操作符
3.1 更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...
- 《java编程思想》读书笔记(一)开篇&第五章(1)
2017 ---新篇章 今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...
- MyEclipse导入ant项目——Java编程思想
北门煎饼东门串儿: <JAVA编程思想(Think in Java)>一书中提供了大量源代码,可是项目是用ant构建的.对于用惯了eclipse,netbeans等IDE的同学们可能有些手 ...
随机推荐
- CentOS下安装yum
在Linux里面依次输入下面的命令: 1,下载最新的yum-3.2.28.tar.gz并解压 wget http://yum.baseurl.org/download/3.2/yum-3.2.28.t ...
- java中关于&、&&、|、||之间的区别和运算
关于&.&&.|.||之间的区别和运算 在逻辑运算中: 普通与&:要判断所有的判断的条件 短路与&&:如果前面一个判断条件出现false,则后续的判断条 ...
- [LeetCode] Longest Palindromic Subsequence 最长回文子序列
Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...
- react-router 4实现代码分割(code spliting)
官方一开始推荐的使用bundle-loader来做代码分割的方式感觉有点麻烦,而且代码看起来有点不舒服.而且需要一直依赖bunder-loader 一开始我想为什么不能像vue一样,直接使用ES的新特 ...
- 使用U盘安装 OS X 的坑
以前在电脑上将 OS X 降回Yosemite旧版本时,使用U盘进行安装时会出现 :"这个 OS X Yosemite"应用程序副本不能验证.它在下载过程中可能已遭破坏或篡改. 其 ...
- [SHOI2008]堵塞的交通
Description 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可 以被看成是一个2行C列的矩形网格,网格上的每个点代表一个城市,相邻的城市之间有 ...
- LGTB 与大数
LGTB 有一个非常大的数,并且他想对它进行Q 次操作 每次操作是把这个大数中的某种数字全部替换成一个数字串 他想知道Q 次操作之后得到的数对1000000007(109 + 7) 取模的结果,请输出 ...
- LOJ #6031 字符串
Description Solution 当 \(k\) 值较小时,发现询问串比较多,串长比较小 然后对 \(Q\) 个询问区间离线跑莫队,一次考虑每一个区间的贡献 假设一个区间 \([i,j]\) ...
- [BSGS算法]纯水斐波那契数列
学弟在OJ上加了道"非水斐波那契数列",求斐波那契第n项对1,000,000,007取模的值,n<=10^15,随便水过后我决定加一道升级版,说是升级版,其实也没什么变化,只 ...
- [bzoj5015][Snoi2017]礼物
来自FallDream的博客,未经允许,请勿转载,谢谢. 热情好客的请森林中的朋友们吃饭,他的朋友被编号为 1-N,每个到来的朋友都会带给他一些礼物:.其中,第一个朋友会带给他 1 个,之后,每一个朋 ...