Java学习之路(书籍推荐)

 

一、基础类

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

Java学习之路(转)的更多相关文章

  1. 新篇章之我的java学习之路下

    昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...

  2. java学习之路之javaSE基础2

    java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...

  3. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  4. JAVA学习之路与大家分享

    这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...

  5. Java 学习之路 -- day00

    Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...

  6. (转)如何学习Java技术?谈Java学习之路

    51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...

  7. Java学习之路:不走弯路,就是捷径

    1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...

  8. java学习之路

    先来说一说我和it之间的不解之缘.准确来说,我接触it是从大二是我买的第一个手机开始的(国产的,展讯平台,能够运行mrp虚拟机),那时候还没有智能手机,或者说还不够普及,总之就是买不起.一次偶然的机会 ...

  9. 【分享】Java学习之路:不走弯路,就是捷径

    1.如何学习程序设计? JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用.有编程高手认为,JAVA也好C也好没什么分别,拿来就用.为 ...

随机推荐

  1. 洛谷 P1976 鸡蛋饼

    题目背景 Czyzoiers 都想知道小 x 为什么对鸡蛋饼情有独钟.经过一番逼问,小 x 道出 了实情:因为他喜欢圆. 题目描述 最近小 x 又发现了一个关于圆的有趣的问题:在圆上有2N 个不同的点 ...

  2. 数据结构:Rope

    以BZOJ1507为例,这里仅仅展示动态区间问题的一些典型操作,包括插入删除和修改,查询的话不支持按顺序查询 使用起来很简单很方便 #include<cstdio> #include< ...

  3. vijos 1907 DP+滚动数组

    描述 Flappy Bird 是一款风靡一时的休闲手机游戏.玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,让小鸟顺利通过画面右方的管道缝隙.如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告 ...

  4. LightOJ 1140 计数/数位DP 入门

    题意: 给出a,b求区间a,b内写下过多少个零 题解:计数问题一般都会牵扯到数位DP,DP我写的少,这道当作入门了,DFS写法有固定的模板可套用 dp[p][count] 代表在p位 且前面出现过co ...

  5. bzoj4695 最假女选手

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4695 [题解] SegmentTree beats!(见jiry_2论文/营员交流) 考虑只 ...

  6. 【BZOJ】2679: [Usaco2012 Open]Balanced Cow Subsets

    [算法]折半搜索+数学计数 [题意]给定n个数(n<=20),定义一种方案为选择若干个数,这些数可以分成两个和相等的集合(不同划分方式算一种),求方案数(数字不同即方案不同). [题解] 考虑直 ...

  7. 2、MySQL常见数据库引擎及比较?

    MySQL存储引擎简介 MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎: MyISAM管理非事务表.它提供高速存储和检索,以及 ...

  8. ajax中datatype的json和jsonp

     前言: 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域 ...

  9. Java 中的静态内部类

    静态内部类是 static 修饰的内部类,这种内部类的特点是: 1. 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 2. 如果外部类的静态成员与内部类的成 ...

  10. python进行机器学习(三)之模型选择与构建

    Scikit-Learn库已经实现了所有基本机器学习的算法,可以直接调用里面库进行模型构建. 一.逻辑回归 大多数情况下被用来解决分类问题(二元分类),但多类的分类(所谓的一对多方法)也适用.这个算法 ...