2012-上半年读书


今年看的书主要是上半年在学校做毕业论文的时候抽出时间来完成的,其中不管是技术类的还是非技术类的,今年是看的比较多的一年,尤其是技术类的书,上半年正好可以有大把的时间来看书,练习,思考,反而做毕业论文倒是没花多长时间,好像上半年回学校真的出了看过的书没有什么好纪念的,对了,有一件事情,那就是我毕业了,终于他娘的毕业了,终于不用上政治课了。
    《The well-ground java developer》作者martijn Verburg ,这本书主要是讲述了java7 的一些新特性,以及性能调优方面的一些知识,到现在为止这本书我看到的只是一部分的内容,没办法,在亚马逊上有这本书,不过太贵,打折以后也要22刀,一上来首先讲了project coin,然后讲述了java7的并发包的一些新功能,里面有些实例代码,可以边看边自己实践一把,然后讲了在新的JVM上跑额一些新的小语种语言,比如Groovy(本来就是与java无缝集成的),Scala(了解不是很多),Clojure(了解只是皮毛,反正是跑在JVM的函数式编程语言),最后就是讲了一些开发的理念,比如持续集成,快速开发等等,反正这本书确实值得一看,作者就是一个技术大牛,如果感兴趣可以加入java7的邮件组,如果java7有更新会定时的发到你的邮箱。。。看书时间----2012上半年在学校

    《Pro java7 NIO.2》这本书主要是讲了java7出现的新的nio的功能和API,其实上面那本书对新的NIO有了讲解,但是只是一笔带过,没有深入的讲解,这本书真的是对NIO.2的每个API和功能,实例进行了讲解,非常的详细,我当时看完这本书后心里真的是窃喜,NIO.2的功能真是太强大了,使用起来太方便,而且没有NIO那么繁琐,不管是引入的新类Path,Paths,Files等等,真的是如果你看过并且用过nio.2你真的不想再用什么IO,NIO,对文件和流的操作绝对是一流的。我私下里自己写有关流的代码一般都是用nio.2,工作中用NIO或者IO(没办法,公司的环境还是JDK6,不敢轻易升级,而且java7最近爆出来好几个漏洞,小小的抱怨一下:个人感觉java是要毁在oracle手里了,想起一句话,oracle所到之处,开源社区寸草不生)。不管你是读取、修改、socket编程,异步通道、监视文件的变化等等,都能让你得心应手,而且这个包中的类非常有序,大部分都是一个工具类对应一个真正的操作类,非常方便,而且与旧的IO能够完美的结合和转换。顺便说一下,这本书其实是在java7出版之前写的,所以里面的有些API和现在下载的JDK7有所不同,但是只是很少量的不同,不会影响对本书的质量的,所以是值得一看。。。。看书时间----2012上半年在学校

    《Java NIO》当然这本书讲的是NIO了,当初要看这本书就是觉得我们在实际的使用中已经掌握了,但是具体的某些细节又没有深入的了解,最主要的就是前段时间工作中碰到一个问题,我从数据库中dump数据到内存(总共有20W),然后进行去重(去重以后剩余2W),在开发环境完全没有任何的压力,但是跑到了线上,结果差点悲剧了,线上有40W的数据,每次dump数据结果CPU和内存就爆满,年轻代和年老代的压力剧增,GC频率加大,最后应用处于假死状态,没办法只有重启应用,后来和他们私下讨论想出了两个解决办法,这里就不详细说了。主要是没有深入的了解NIO和IO的底层实现,以及ByteArrayInputStream不会自动进行缓存等等。这本书首先讲了就是缓存区,各种buffer的详细的API和具体的实现,然后讲了channel,列出了一些具体的代码,以及选择器等等,我看这本书就是边看边敲,然后进去看源码,然后一章完了自己再去写一个小程序,最后把自己的想法和思路写到ITeye上去,对于以前一些模糊的认识有了新的理解,最后的两章讲的是正则表达式和编码集,由于之前已经看过了这两个包的内容,所以我就直接跳过了,没有看。这本书也是值得一看,就当是自己看源码了,而且这本书有中文版的,差不多有250页,看起来也非常快,我个人感觉是用处还是比较大,不能等到出现问题才去看,就当是打预防针了。。。。。看书时间----2012上半年在学校

    《Java IO》这本书当然了就是讲的最老的java的 IO,没什么好说的,这本书就是最基本的对API的解读,其实这些东西你自己看看源码就可以非常的了解,但重点是作者在讲述API的时候对其中的历史和设计思路,为什么要这样设计有非常清楚的讲解,所以在看懂源码的时候能够了解到它的设计原理,其实对自己的帮助还是挺大的,忽然想起一句话:三流的公司卖产品,二流的公司卖服务,一流的公司卖接。这本书从基本的IO,到data io,filter stream,再到buffer and writer,虽然里面作者提到的有些东西过时了,不一定是正确的,但是在你边看边想,并且能够看出其中的错误,对自己何尝不是一种提高呢。这本书有时间可以看一下,主要是O'RELLY出版的,个人还是比较喜欢。。。。看书时间----2012上半年在学校

    《这就是搜索引擎》这本书就是讲搜索引擎的架构,从开始的spider到后来的建索引,排序,一个请求过来时的搜索等等。这本书不像其他的书,好像我记得其中没有代码,只是图,文字,看起来非常的轻松,只是看完一章后要自己静下来想想讲了什么。书中其实讲的算法比较多,各种算法,自己到最后都不记得名字了,所以自己如果能够边看边记,到最后反过头来一看才会深有体会。这本书其实和自己实际中关联不是很大,工作中根本用不到,不过就当是课外阅读内容了,增加自己的一些广度。如果是要准备面试,可以看下这本书,吧其中的内容好好体会下,到时候各种侃。。。。看书时间----2012上半年在学校

    《Java Core Reflection API and Specification》其中这不算一本书,之前就看过,但是在学校也确实没事,就又看了这个规范,反射在实际中我们确实用的不多,尤其是你写的是应用程序,而不是中间件之类的东西,基本上用不到,但是如果你用过spring,看过asm和cglib等,那你一定要首先理解反射,把他吃透,这样才能对现在比较热门的动态部署,模块化有更深入的了解。规范不用说,就是对反射的标准做出了定义,其实这个规范和我们实际中用到的sun的JDK的源码基本吻合,可以结合源码边看边自己写程序验证。个人觉得如果看过一遍,会有初步的理解,如果再看一遍基本上就会随手捏来,我觉得看技术书看规范最靠谱,不足的就是实例和讲解不是非常深入。值得一看。。。。看书时间----2012上半年在学校

    《Java Object Serialization Specification》序列化的规范,其实自己再学校的时候倒没怎么在乎这个规范,觉得用处不大,等实习一段时间以后,再回学校看真的是别有一番体会,我们一般定义一个类一般是直接让他实现Serialiable接口或者exteriliable接口,但是对java底层如果进行序列化认识不多,也许有些人和我开始一样不在乎,但是工作中确实会出现序列化问题,尤其是跨团队合作,通过中间件来进行通信的时候经常会出现序列化的问题。具体的内容不多说了,它讲的非常详细,添加一个方法会怎么样,少一个方法会怎么样等等。我个人还认为如果你看完了这个规范,有必要看这本《序列化的秘密》书,这本书讲的是为什么要序列化,什么时候需要序列化,用那种方式进行序列化,不同的序列化方式的效率(比如hession等)。可以说本书是从一个更高的角度来看待序列化。他当中还涉及到了mina等底层的通信框架,可以在看的时候自己把这个也了解一下。这两本书是非常值得推荐一看。而且是在我们实际工作中确实可能用到。所以我一般的学习方法是,首先用某个方法,然后看他的API,看源码,如果有规范看规范,实在不行可以下载openJDK的JDK来进行编译,看其中用C写的一些native方法(深入理解java虚拟机这本书有提到如何进行编译),值得一看。看书时间----2012上半年在学校

    《nosql_ecosystem》这其实就是一个对nosql的大致的分析,如果你没用过或者想了解nosql,可以首先看这本书,作为一个入门的nosql学习资料,可以选择自己感兴趣的nosql系统,他首先讲了几种nosql的优缺点,适合应用的场景,然后讲了数据模型和操作模型,数据一致性的保证机制(CAP理论),分区分表,可靠性,和虚拟哈希法等。其实个人倒是他不止涉及到nosql,讲的这些技术对我们实际的编程也有很大的帮助。比如分库分表,可靠性的保证,虚拟哈希等等在实际的一些sql的底层数据源的管理中间件中用到。在我实际工作中用到的是cassandra和mongodb,当然用处主要是用来记录日志,做一些不痛不痒的事情。现在cassandra基本上已经废掉了,都迁移到了mongodb中,当然我也是只是皮毛的理解,还有待于深入。值得一看。。。看书时间----2012上半年在学校

    《深入理解java虚拟机》不用说,当然是对java虚拟机的讲解了,我看完以后想能写出这本书的真的是大牛,他自己可以完全写一个虚拟机,首先讲了java中内存区域和经常出现的内存溢出,什么情况下出现等等。然后将的是内存分配和垃圾回收策略,讲了集中不同的垃圾回收机制,他们各有优缺点,所以适用于不同的内存区域。然后讲的是对java的内存监控工具和一些性能调优的的一些案例(在实际工作中非常有用,尤其出现内存溢出,CPU居高不下的情况时,这些工具或者自带的命令非常有用)。然后讲了java的类结构,类的加载机制,类实例化的过程等等,这部分才是重点,也是我们在实际写代码并且排除问题的时候要经常用到的。比如:为什么局部变量要必须初始化,等等。如果你看过以后心中会豁然开朗,原来是这样。然后讲了一下java的编译和执行期的优化。这本书个人认为至少要读两遍才能非常详细的理解,并且读完以后可以看一下相关的博客,自己看一下class文件的二进制码,我相信会有不一样的收获,不管是你的知识面还是能力,个人建议看完后顺便看一下《Java虚拟机规范》(现在有两个版本,一个是java6,一个是java7,建议看java7版本和《Java Memory model and Thread specfication》。值得一看。。。看书时间---2012--下半年在家

    《java7-langage-specfication》这本书是我今年看的重头戏,有1000多页,这本书我从毕业一直晚上看,看了将近三个月才看完。规范一般是没有做成书出版的,主要是涉及到版权的问题,所以这些规范都是自己打印出来的,好在现在打印比较便宜。这个规范真的是java的基础,定义了java的方方面面,从基本的数据类型转换,到引用类型,表达式,泛型,内存污染等等,可以说是及其详细,我觉的如果你看了这本书并且对其中的内容理解了, 之前的那些狗屁恶心的面试题,完全不在话下。当然现在看不是为了面试,是觉得有必要对java的基础进行了解,这本书看起来比较轻松,对于其中讲到的一些内容如果有疑惑,可以写个程序验证一下,大部分都是比较流畅的。不过最好看完一部分以后思考下,这样才会有收获。。。个人觉得如果时间充足的话,可以再每天晚上睡觉前花一到两个小时看一下。。。看书时间。。。---2012--下半年在家

    《JavaScript语言精粹》其实在自己的工作中,已经掌握的前台的js和html技术已经能够应付了,只是自己对js的学习比较粗糙,所以想从基础对js有多的理解,并学习一下函数式编程。这本书比一般的讲js的更少,但是讲的都是精华,把js中那些没用的东西基本上没有讲,所以可以全部看完,全书也不到200页,如果想要对自己的前台js有所提高或者要深入理解,可以看下《ECMAScript-language-Specification-5.1》,我是没有时间看,所以也给自己一个安慰,呵呵。。。看书时间-----2012上半年在学校

    《Java Rules》这本书也是讲的java基础,开始一部分设计到语法,讲了java的基本类型,后来讲java的一些常用类型,比如Date,Calendar等等,最后讲了java 的collection的一些方法和类。不要以为这本书就是讲基本的东西,其实他是讲这些类如果使用,我们在使用中所要注意的点,所以他不是工具类的书,而是站在高层来看待java的使用。虽然本书出版的比较早,而且后来也没有更新,其中的一些东西确实已经过时了,但是他的理念和分析真的是非常深入,能够从另一个角度看待java的使用。我觉得如果对java认识有了一定的深入,不妨可以看看,仔细品味作者所说的话。这本书也是我毕业以后每天早上在公司坚持看一个小时看完的,所以看书的效率不是很高。看书时间---2012-下半年在公司

    最后说的其实不是一本书,而是一个工具---intellij,为什么要说IDE呢,我开始也是觉得IDE嘛,不就是工具,理解java才是最关键的,但是我作为一个过来人,从开始用eclipse,到后来的myeclipse,最后到intellij,我真正的体会到了intellij的强大和高效,开始用eclipse我觉得还可以接受,后来自己在学校学习的时候用myeclipse(我现在对这个工具很无语,占用内存极大,我当时是开的oracle和myecl,结果那个时候2G的内存完全吃不消,不过辛苦了我之前的那台电脑,当时仍然顽强地工作,去年光荣下岗了),用了intellij之后我再也不想用其他的IDE了,他的建索引的能力,搜索的速度,及时提示功能等等,做的太完美了,这个软件是有jetbrains的一家捷克公司开发的,他旗下的IDE比较多,我使用到的就有intellij(由于他对于groovy支持的非常好,所以只需要安装一个插件就可以当做一个groovy的开发环境了),webstorm(用来开发前台界面和写js代码),其他的都是一些小语种语言的工具。这个工具开始使用起来极其不习惯,而且这个工具也不是免费的,所以现在国内用这个工具的人不是很多。听说这个公司去年的状况不是很好,我省吃俭用花了199刀买了一个个人使用的终极版(现在想想冲动了),作为对这个公司的支持。



    最后说下其他的之前看过的一些还不错的书,《Spring揭秘》这本书不是spring的工具书,而是对spring的底层实现细节进行了讲解,建议看这本书,因为spring本身就博大精深,里面的设计模式非常常见,代码的思路和实现也值得我们模仿。《编程珠玑第二版》讲的是问题的解决方法,给出一个问题额时候不是急着下手,而是思考,最后给出合理的解决办法,非常好看,可以深入的理解下里面的算法。《java bean specfication》既然是规范就不细说了。一些单元测试工具,mock,dbunit,spock等等。

    好吧,就写到这里,具体的其他的一些书暂时想不起来了,算了下,今年到目前为止买书花了1000多,书是买了不少,收获倒是不多,以上就是扯淡,完全没有提高自己的意思,只是记录下自己的学习过程。最后说一句在论坛上看到的话 ” 世界上有10种人一种是懂二进制的,一种是不懂二进制的 “。

猜你喜欢

转载自gaopengxiang417.iteye.com/blog/1756471
今日推荐