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编程思想阅读收获的更多相关文章

  1. 【Java编程思想阅读笔记】Java数据存储位置

    Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new ...

  2. List接口方法使用(PS:Java 编程思想阅读小结)

    1.用代码说话 package JavaProject; import java.util.*; public class A{ public static void main(String[]arg ...

  3. java编程思想阅读记录

    第五章:初始化与清理 1.构造器确保初始化 构造器采用与类名相同的方法. 创建对象时,将会为对象分配存储空间,并调用相应的构造器.这就确保了在你能操作对象之前,它就已经恰当的被初始化了. 垃圾回收器负 ...

  4. 《Java编程思想》阅读笔记二

    Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...

  5. 《Java编程思想》阅读笔记一

    Java编程思想 这是一个通过对<Java编程思想>(Think in java)第四版进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会 ...

  6. JAVA编程思想——分析阅读

    需要源码.JDK1.6 .编码风格参考阿里java规约 7/12开始 有点意识到自己喜欢理论大而泛的模糊知识的学习,而不喜欢实践和细节的打磨,是因为粗心浮躁导致的么? cron表达式使用 设计能力.领 ...

  7. [Java编程思想-学习笔记]第3章 操作符

    3.1  更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...

  8. 《java编程思想》读书笔记(一)开篇&第五章(1)

    2017 ---新篇章  今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...

  9. MyEclipse导入ant项目——Java编程思想

    北门煎饼东门串儿: <JAVA编程思想(Think in Java)>一书中提供了大量源代码,可是项目是用ant构建的.对于用惯了eclipse,netbeans等IDE的同学们可能有些手 ...

随机推荐

  1. 原生nodejs在线聊天系统

    前端自动化由来已久,最近为了编写自己的自动化工具,本人开始详细学习node,为了检验学习成果,决定编写一个类似于webqq的聊天系统.以下是该系统具有的模块. 登录模块(自动登录) 聊天模块(私聊,群 ...

  2. 【JAVA】pdf转图片

    最近java项目中使用到了pdf转图片的需求,在此记录一下. 1.基于GhostScript p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px ...

  3. hdu 5869 区间不同GCD个数(树状数组)

    Different GCD Subarray Query Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K ( ...

  4. Ubuntu 16.04 LTS(入门一)国内快速更新软件源

    一.源文件位置 备份并替换/etc/apt/sources.list的源内容: 二.更改源文件内容 sudo gedit /etc/apt/sources.list deb http://mirror ...

  5. Intellij idea: java.lang.ClassNotFoundException:javax.el.ELResolver异常解决办法

    使用Intellij idea编译过程中遇到的问题及解决办法. 由于编译时候报javax.servlet不存在,我把tomcat下的servlet-api.jar放到了External Librari ...

  6. TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人

    简介 TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人. 文章包括一下几个部分: 1.为什么要尝试做这个项目? 2.为 ...

  7. CentOS7 下安装 Java 8 [wget]

    1. 创建一个文件夹 sudo mkdir /usr/local/services/java8 2. 使用 wget 来下载 wget --no-cookies --no-check-certific ...

  8. JSON.parse()在火狐中的BUG

      //用sessionStorage解决load页面刷新问题 { //sessionStorage.removeItem("loadInfo"); var loadInfo=de ...

  9. select动态绑定vue.js

    <select v-model="selected"> <option v-for="option in options" v-bind:va ...

  10. 18. 4Sum(中等)

    Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = tar ...