引用来自“raydian_yuan”的答案
给点个人经验吧,个人认为学习任何东西基础很重要,因为应用和开源工具万变不离基础。《thinking in Java》第三版,重头开始读,读三遍,AWT的部分不看。第一遍开始有地方不理解看不懂没关系,就是混个眼熟。桌面上永远打开JDK文档,中英文随意,用到哪个类,就把哪个类过一遍,前期会影响你的编码速度,但对学习api很有必要。同时对应着《thinking in java》看JDK 文档中的API说明。
读API的时候看些例子是很必要的,推荐一个网站,http://java2s.com/,里面有各种java api的小例子。
《thinking in java》读差不多了后,读《effective Java》,也不用全读懂,没事多翻翻用实际经验理解即可。
对于开源工具方面,前期不用贪多,java的开源项目太多了,看不完,和你自己的实际项目走,但有一个必须要多看,反复看,那就是Spring 3.0,从缓存,数据库,队列,定时器,线程,web mvc基本都涵盖了。多读官方发布的doc manual,反复读,结合工作实践,上手熟悉不是很慢。
另外还有两个提升学习和编程的小技巧很有用:一个是与人分享你学到的东西,另外一点是自己写一些对自己有用的小工具类的开源项目。
来源:http://www.oschina.net