Java学习之路(书籍推荐)

Wesley13
• 阅读 737

一、基础类

1、《Thinking in java》(阅读2遍),入门第一位是建立正确的概念

2、《Core Java》这本书更贴近实践,更多API的介绍,同样,更新也更频繁。(可以选重点章节读一下)

二、进阶类

1、《Effective Java》(阅读1遍),在熟悉语法、API之后,你需要知道最佳实践和陷阱,没有比这本更好的。

2、《深入Java虚拟机》(阅读2遍),翻译一般,但不可不读,最好结合最新的JVM规范来读。

3、《Java Puzzlers》,通过谜题介绍一些你可能没有注意到的边角料,作为趣味读物也不错

三、特定领域

1、并发编程(进程、线程、协程,并发模式):

(1)《Java Concurrency in Practic》(阅读1遍),并发领域必读经典。

(2)《Java并发编程:设计原则与模式》,同样是Doug lea的作品。

(3)《java threads》,入门读物。

(4)《Programming Concurrency on the JVM:Mastering Synchronization, STM, and Actors》

(5)《多处理器编程的艺术》(阅读1遍)

2、集合编程(数据结构和算法):

Collection Framworks/STL,数据结构和算法:《算法概论》 《算法导论》 《计算机编程艺术》

《Java Generics and Collections》

3、网络编程:

(1) O’Reilly的《Java nio》,很多人都推荐,我个人觉的一般,基本上只是个API更详细的说明文档,O’reilly的java系列很多都是这样。

(2)我更推荐这本《Fundamental networking in java》,由浅入深教你怎么做java网络编程,并且介绍很多背景知识,甚至介绍了各种最佳实践、网络编程模型以及Java socket在不同平台之间的差异等等。

(3) Netty

4、web编程

(1) Servlet规范

(2) JSP规范

(3) JavaBean规范

(4) JMS/Java Naming and Directory Interface(JNDI)/JDBC/Java Transaction API(JTA)

(5) Struct2 + Spring + ibatis/hibernate/jdbc/

四、模式与设计

1架构模式、

1、《分析模式——可复用对象模型》

2、《面向模式的软件体系结构》,国内貌似翻译了5卷,绝对经典,可惜翻译较差。

3、《企业应用架构模式》(2遍)

4、《分布式架构:选一本书》

2设计模式

1、《设计模式》,GOF的经典。

2、《设计模式精解》(1遍),应该有最新版,个人认为更适合入门。

3、《Head first设计模式》,更轻松的入门读物。

4、《Java与模式》

3代码模式/惯例/编码规范

1、《代码大全》(1遍)

4 重构

1、《重构——改善既有代码设计》(1遍),想写好代码必读。

2、《重构与模式》

五、方法论/软件工程

1、《敏捷软件开发》

2、《测试驱动开发》(1遍),你不一定要TDD,但是你一定要学会做单元测试。

3、《Agile Java》,也可以作为java入门读物。

4、《快速软件开发》

5、《面向对象分析与设计》,OO设计必读。

6、《Unix编程艺术》(1遍),打开你的眼界。

六、Java之外

1、 《深入理解计算机系统》(0.8遍)

2、 《算法导论》阅读(0.9遍)基本部分阅读,其它参考阅读

3、 OS部分:《深入Linux内核架构》《Linux内核设计与实现》《Linux内核分析与操作系统设计》 《Linux/UNIX系统编程手册》

4、 《TCP/IP详解》(0.8遍)(三卷)、《UNlX环境高级编程》《unix网络编程》(两卷),学习网络编程必读书。

5、 《C++网络编程》上下两卷,介绍ACE的,但是其中对各种模式运用的介绍非常值的一读。

6、 《计算机程序的构造与解释》,必读

7、 《编译原理》龙书,最新版用java解释,我没有读完,顺便提下。

8、 《数据库概念》

9、 《Joel说软件》编程文化

10、《人月神话》、《人件》(阅读1遍)

11、《卓有成效的程序员》(阅读1遍),给我很大启发的一本书。

12、《程序员修炼之道》(阅读1遍)

参考: 我的Java学习推荐书目 http://jm-blog.aliapp.com/?p=522 Java开发实用权威书籍集合 http://www.iteye.com/news/21791/ 学习JVM的References http://jm-blog.aliapp.com/?p=525

哪本书适合推荐给Java初学者? http://www.zhihu.com/question/19848946?rf=19752221

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java基础知识随身记
2018年11月12日20:51:35一、基础知识:1、JVM、JRE和JDK的区别:JVM(JavaVirtualMachine):java虚拟机,用于保证java的跨平台的特性。  java语言是跨平台,jvm不是跨平台的。JRE(JavaRuntimeEnvironment):java的运行环境,包括jvmjava的核心类
Jack Jack
2年前
Java学习路线
阶段一(夯实基础)Java基础语法学习目标:1.熟悉Java等基本概念2.掌握Eclipse/IDEA集成开发工具的安装、配置和应用3.熟悉Java基本语法、基本类型、运算符和表达式4.掌握分支、循环逻辑语句、数组等知识的应用知识点列表:JDK、JRE、JVM基本概念Java环境搭建和配置安装和使用Eclipse/IDEA开发环境Java基本数据类型变量,
Wesley13 Wesley13
2年前
java架构师之路:推荐的15本书
一对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。在有了一定的Java编程经验之后,你需要“知其所以然”了。这个时候《Java编程
Wesley13 Wesley13
2年前
java从程序员走向架构师
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。一、Java编程入门类对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和
Wesley13 Wesley13
2年前
Java基础入门之Object类、匿名内部类、构造方法的继承解析
点击上方“Java进阶学习交流”,进行关注后台回复“Java”即可获赠Java学习资料今日鸡汤古调虽自爱,今人多不弹。前言大家好,我是Java进阶者。这篇文章我们主要介绍Java基础中的Object类、匿名内部类、构造方法的继承知识,一起来学习下吧!一、Object类
Wesley13 Wesley13
2年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
2年前
Java从无知到入门书籍推荐
0前言本文主题为JavaWeb书籍推荐1零基础学习此处的零基础,指的是不懂或只懂ifelse之类基本代码流程。初次接触,建议淘宝买一套\\培训机构录播课程,看入门段视频。一是学习之初培养良好的习惯,正确认识面向对象、软件开发;二是有老师带着可以尽快上手,比自己单看效率要高。2入门入门阶段书籍皆较简单,建议跟书上代码,速度敲
Stella981 Stella981
2年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Stella981 Stella981
2年前
JVM的基础知识点Java的内存模型
阅读文本大概需要3分钟。Java虚拟机是Java工程师必学的进阶功课,这段时间开始死磕JVM。今天梳理一下JVM的基础知识点Java的内存模型!!(https://oscimg.oschina.net/oscnet/d48bb92f83f6e209089d8c03dc2ba35cf45.png)程序计数器是什么:程序计数器是
元图 元图
18小时前
2024全新版 操作系统入门与实践-参透技术本质
2024全新版操作系统入门与实践参透技术本质download》chaoxingit.com/4989/操作系统入门与实践的步骤操作系统入门与实践的步骤可以按照以下方式进行:理论学习:开始时,通过阅读操作系统相关的基础理论书籍或在线课程来建立起对操作系统的基