这本书刚拿到手就感觉比较满意近几年少有的下了血本的纸质,564页的厚度拿在手里有重量,有质感,光凭这一点可以加1分了。现在的技术书籍的纸质差的令人发指,完全属于抢钱的纸质,定价一般是300页59元,400页就是60-70区间了,定价上去了,但是纸质令人发指,这就不得不问候出版社的家人了。希望清华大学出版社能够做到业界的榜样,让其他出版社看看什么才是有道德的出版社。
好了,该聊本书的内容了。
本书的第一章基本和Java核心技术差不多,对Java这个平台进行一个概要性的介绍,讲一下Java不仅仅是语言,而是一个平台,巴拉巴拉巴拉巴拉什么的。然后告诉大家Java是由一个标准委员会定义下的一个标准规范,可以由任何厂商根据规范编写自己的JVM(java虚拟机),但是前提是各大厂商必须遵循规范来实现,这样才能做到Java所倡导的一次编译随处运行的特点。
第一章的后半截给各位Java初学者指明了一条作者推荐的学习曲线:
- 首先从JVM/JRE/JDK开始了解,
- 理解面向对象中的封装/继承/多态
- 掌握Java SE的API
- 学习Java的容器的概念(这里不是数据结构的容器,而是我个人理解为一个独立的沙盒一样的玩意儿)
- 研究开源项目
- 学习设计模式和重构
- 熟悉相关开发工具
这些内容仅仅是作者推荐的学习路线,当然,我只是拿Java来写一些Android的程序,我的开发经验集中在C#/.NET平台,对C++也有涉猎。Java我还是只想用来写写Android程序,所以如果你也和我一样只是拿Java来用作某个特殊领域的工具,那么也不需要按照作者的推荐路线来进行学习。我推荐的路线是,怎么舒服怎么走,唯一前提就是打好地基,做到知其然更要知其所以然,这样才不会因为对工具不熟悉而导致突然卡壳的事情发生。
接下来本书花费了第一章后半部的篇幅来讲解什么是JRE,什么是JDK,JVM是什么,这点做的比较好,对于Java的初学者来说,首先就是要区分这些术语的区别,知道它们是什么,一上来就讲Java语法的人,学会Java语言本身后,很少有人愿意静下心来把这些基础知识重新学会掌握,还不如一开始就给初学者理清这些线索,以后遇到问题了就知道到哪里去找答案,这是本书的一个特别之处(至少我从Java核心技术,Java编程思想这类书籍上没看到这样的内容。如果有什么错误,请帮我指出,我看的Java的书不多,只有Java核心技术第八版第一卷,Java编程思想第四版,Effective Java,Java动画、图形和极富客户端效果开发,Java并发编程实战寥寥几本,相比较而言,我C++和.NET/C#方面的书看过的就非常多,那些方面我想我会比在Java领域更有一些发言权)
第二章 从JDK到IDE。
这章也是本书的基础章节,我是强烈推荐Java新手按照章节顺序进行学习,别忙着上手编程,这些基础知识对于你在各个操作系统进行编程解决方案是必要的。
第二章一开始作者写了一个Java版本的Hello World,然后告诉新手这个Hello World程序的各个部分的大概的含义(其实我觉得第二章的主线是讲解PATH,CLASSPATH,SOURCEPATH这类东西,根本就不要讲语言上的东西,直接让初学者照着书把代码敲到记事本里去,然后接下来就讲解环境变量的方式可能会更好,然后后面再统一讲解Java的语法),接着引入到第二章的正题,PATH环境变量(针对Windows操作系统),JVM和CLASSPATH之间的关系,编译程序(javac)和CLASSPATH之间的关系。然后根据之前的这些内容,引入了源码的目录管理,最后引入Java语言中的package的概念。整个概念都用一条主线牵起来,然后一路走下去就把这些概念全部都理解了,这点作者做的很好,很到位。本章顺带提了一下JAR文件的作用讲解的也比较清晰易懂,只要理解了classes文件作用的读者,必然能够理解JAR的作用,以前我一直对JAR的作用了解很少,现在阅读了本章后,补全了这方面的知识,也算是有收获(对初学者的收获则更加大了)。本章最后开始介绍IDE,作者在本书中选择的是NetBeans IDE,而不是国内用的最多的Eclipse,但是我对于大家的观点是,要看到背后的本质,而不要被IDE的表面所蒙蔽了,IDE是一个工具,是一个帮助你高效开发的帮手,你没有IDE一定要也能够做开发,但是工作中一定要用IDE,这不矛盾。然后本书作者就在本章结束前巴拉巴拉的讲解NetBeans IDE的使用了,我这里就不做评价了,大家只要用上IDE,基本上做几次就会用了。然后本章最后还有一点需要大家注意的是,本章末尾,作者给大家理清了一个很重要的概念。“使用哪个JRE”,这个非常重要,大家一定要搞懂,Java语言发展到今天,版本众多,你如果一上来就选择了一款IDE进行学习开发,有很多初学者都没理清楚你用IDE写的代码到底是编译成哪个版本的Java程序,而这个不理清会直接导致你编译出来的高版本的Java字节码不能在使用低版本JRE的JVM上运行的惨剧。
本书的前两章的阅读笔记就写到这里,如果各位看官有什么意见和建议,欢迎大家留言给我提出来。我以后改进。