看书的好处
1、能出版的书一定经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料
2、对着书上的代码自己敲方便
看完书之后再次提升自我的最好途径是看一些相关的好博文。一本书往往有好几百也,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处
关于设计模式,看 java_my_life 的博客
其讲解设计模式的大体路线是:
1、随便开篇点明该设计模式的定义
2、图文并茂讲解该设计模式中的结构
3、以详细的代码形式写一下该种设计模式的实现
4、补充内容
5、讲解该设计模式的优缺点
对于一个设计模式,我们关注、学习的知识点,不就是上面这些吗?
当然,同一种设计模式的写法有多种,不是只有某种写法才是这种设计模式。比如,适配器模式,我们应该关注什么是适配器模式,而不是怎么写适配器模式,不是按照该种格式写的就不是了。不过,通过代码学习,是最快的一种理解方式啦
一、《深入理解Java虚拟机:JVM高级特性与最佳实践》 作者 周志明
如果你不满足于做一个只会写if……else……的java 程序员的话:
1、了解java 代码的底层运行机制
2、定位性能问题
3、对整个系统进行性能调优
4、解决各种奇怪的线上线下问题
5、更加高级别的,为自己的项目量身定做一款适合自己项目的虚拟机
那么 java 虚拟机 就是你必学的一门技术。(网上有电子版,不过与纸张书有最新版,新版有作者新补充的知识。
二、《HotSpot 实战》 作者:陈涛
Java 虚拟机都是遵循着 java虚拟机规范来的,市面上的java 虚拟机有几十款,比如 sun 的jdk,ibm 的jdk 等,《深入理解Java虚拟机:JVM高级特性与最佳实践》 一书里卖弄的虚拟机并不针对某种特定的虚拟机,而是从java 虚拟机规范的角度来讲解java 虚拟机
平时使用的乃商用的大多数java虚拟机都是sun公司的HotSpot,大家从cmd进入命令行,使用 java -version 可以看出版本。
如果希望在java 虚拟机贵啊反的基础上深入了解虚拟机的一些细节是怎么实现的,就可以看一下《HotSpot实战》一书。源码是c/c++ 写的。有兴趣,去下载一个openJDK 看看 HotSpot 的源码。
三、《java 并发编程实战》 作者:Brian Goetz
这本书常常被列为java程序员必读十大书籍排行榜。
不过,个人感受:文字多,代码少;讲解多,实践少
翻开这本书,多线程怎么用,什么是死锁,什么是竞争,什么是线程安全等等,方方面面的知识点都用大量文字篇幅讲解,整体来说,java 的理论知识体系 讲解的非常透彻的。对于想要速成的,呵呵
四、《java 多线程编程核心技术》 高洪岩
想要学习多线程就多看看此书
这本书的特点:代码多+精讲解
本书关于 线程安全,synchronzed、Reentrant、Timer 等等都有详细的代码进行了讲解,而且每个大知识点下的小知识点都会详细讲解,非常有实践价值。
学习方法:敲代码、运行、思考
五、《Effective Java中文版》作者:Joshua Bloch
作者是谷歌的首席架构师,属于超级技术大牛级别了吧。本书也有很高的知名度
好的代码是每一个程序员都应该去追求的。
好的代码 提升了 代码的可读性 以及可以规避许多潜在的、未知的问题,避免代码上线之后出问题而花时间去维护——无论从时间成本、人力成本来说哦,这都是非常高的。
六、《深入分析java web 技术内幕》 许令波
HTTP、DNS、CDn、静态化、Jetty、Tomcat、Servlet、Spring、Mybatis 等等,设计知识面非常广。尽量用短的篇幅讲清楚一些Java web 使用到的技术内幕,让读者对这些知识点的技术内幕有一个理性的认识。
七、《大型网站技术架构 核心原理与案例分析》 李智慧(原阿里巴巴技术专家)
Java 的大多数应用都是用在Web上的,现在只要稍微大型一点的Web应用,都一定是一个分布式系统,那么一个分布式系统用到了哪些技术?一个大型网站是如何从 一个小型网站成长起来的?如何保证你的网站安全?分布式系统使用到了缓存,有哪些缓存?缓存的使用有哪些值得注意的事项?
强推!
八、《大型网站系统与java 中间件实践》 宪杰(淘宝技术总监)
分布式系统的演化,CDN,CAP理论和BASE理论等等
本书重点是中间件三个字,中间件事分布式系统中一个非常重要的东西,其最重要的作用就是解耦,降低模块与模块之间的强依赖。不同模块之间的依赖度降低,便可以各自独立开发自己的功能,这也可以说是软件工程发展的目标和驱动力。
九、《从 Paxos 到 ZooKeeper 分布式一致性原理与实践》 作者:倪超(阿里巴巴工程师)
该书属于分布式组件的范畴。如果有志于做一个出色的大型网站架构师、公司的技术总监之类的,这些知识当然是必须掌握的了。
本书从分布式系统基本理论开始讲起,讲到Paxos 算法,最后慢慢引入到 Zookeeper ,循序渐进。
十、《Mysql 5.6 从零开始学》 作者:刘增杰和李坤
丰富的数据库性能优化经验是一个顶尖程序员必备技能
目前主流的数据库oracle 和mysql
1、mysql 免费,没有比这个更好的理由了
2、Mysql 相比oracle 更轻量级、更小、安装和卸载 更方便,sql 都差不多的,使用对比学习法,关注一下两者的差别就好
十一、《spring 源码深度解析》
Spring 这个框架做的太好了,功能太强大了。这种功能强大的框架内部一定是很复杂的实现,这就导致一旦你的程序使用spring,出了问题、可能是error、可能是exception、可能程序运行结果不是你的预期的,出现诸如此类问题的时候,将会让你感到困惑,除了上网查资料或者问别人似乎没有更好的解决办法了。
研读Spring的源代码不失为一种很好的学习方法,我个人认为这有很多好处:
1、理解框架内容的实现之后,可以主动去解决问题,而不是依赖别人
2、Spring框架内部实现用到了很多设计模式,很好的代码设计思路,这将会对你写代码、理解设计模式有很大的提高
3、研究spring框架将会大大增强你读代码的能力
好的程序员和普通程序员的差别在于,后者只会把别人写好的东西拿来用,前者不仅能用,还清楚知道别人写好的东西底层是如何实现的。
后记:这是别人推荐的,感觉都好难。不过作为一个程序员,我们也不能以为上班的时候敲敲代码就完成任务了。人,要不断学习哦