前言
1. 基础书籍
2. 并发书籍
3. JVM虚拟机书籍
4. 网络相关
5. 操作系统
6. 数据结构与算法
7. 数据库
8. 设计模式

前言

从1996年到现在,java已经走过了24个年头,在这几十年的时间里,java服务了无数款产品,可以说,没有java就没有互联网的今天,甚至可以夸张点说,今天世界上各种各样的互联网设施,如果没有java的支持,就达不到如今的高度。

好了,牛逼吹完了,如果你觉得你想学java的话,不妨可以看一看以下的书单,楼主刚工作的时候也是从事java开发,所以踩过了不少坑,现在结合网上一些大神的建议,汇总成了如下的书单,各位小伙伴可以参考下~

有任何建议或者疑问的话,可以在评论区留言,楼主看到会一一答复的。

1. 基础书籍

1.1 Head First Java

  • 简介

《Head First Java》是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。最重要的,你会学会如何像个面向对象开发者一样去思考。而且不只是读死书,你还会玩游戏、拼图、解谜题以及以意想不到的方式与Java交互。在这些活动中,你会写出一堆真正的Java程序,包括了一个船舰炮战游戏和一个网络聊天程序。

1.2 Java核心技术 卷1 & 卷2

  • 简介

本书由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),是程序员的优选Java指南。本版针对Java SE 9、10和11全面更新。

1.3 Java网络编程

  • 简介

《Java网络编程(第四版)》实用指南全面介绍了如何使用Java开发网络程序。你将学习如何使用Java的网络类库既快速又轻松地完成常见的网络编程任务,如编写多线程服务器、加密通信、广播到本地网络,以及向服务器端程序提交数据。作者提供了真正可实用的程序来讲解他介绍的方法和类。第4版经过全面修订,已经涵盖REST、SPDY、异步I/O和很多其他高级技术。本书主要内容有:研究Internet底层协议,如TCP/IP和UDP/IP;了解Java的核心I/O API如何处理网络输入和输出;发现InetAddress类如何帮助Java程序与DNS交互;用Java的URI和URL类定位、识别和下载网络资源;深入研究HTTP协议,包括REST、HTTP首部和cookie;使用Java的底层Socket类编写服务器和网络客户端;利用非阻塞I/O同时管理多个连接。

1.4 Java编程思想

  • 简介

本书赢得了全球程序员的广泛赞誉,即使是最晦涩的概念,在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性(深入的面向对象概念、多线程、自动项目构建、单元测试和调试等),本书都能逐步指导你轻松掌握。


2. 并发书籍

2.1 Java并发编程之美

  • 简介

《Java并发编程之美》通过图文结合、通俗易懂的讲解方式帮助大家完成多线程并发编程从入门到实践的飞跃!《Java并发编程之美》分为三部分,第一部分为Java 并发编程基础篇,主要讲解Java 并发编程的基础知识、线程有关的知识和并发编程中的其他相关概念,这些知识在高级篇都会有所使用,掌握了本篇的内容,就为学习高级篇奠定了基础;第二部分为Java 并发编程高级篇,讲解了Java 并发包中核心组件的实现原理,让读者知其然,也知其所以然,熟练掌握本篇内容,对我们在日常开发高并发、高流量的系统时会大有裨益;第三部分为Java 并发编程实践篇,主要讲解并发组件的使用方法,以及在使用过程中容易遇到的问题和解决方法。

2.2 Java并发编程的艺术

  • 简介

并发编程领域的扛鼎之作,作者是阿里和1号店的资深Java技术专家,对并发编程有非常深入的研究,《Java并发编程的艺术》是他们多年一线开发经验的结晶。本书的部分内容在出版早期发表在Java并发编程网和InfoQ等技术社区,得到了非常高的评价。它选取了Java并发编程中最核心的技术进行讲解,从JDK源码、JVM、CPU等多角度全面剖析和讲解了Java并发编程的框架、工具、原理和方法,对Java并发编程进行了最为深入和透彻的阐述。

2.3 实战Java高并发程序设计

  • 简介

《实战Java高并发程序设计》主要介绍基于Java的并行程序设计基础、思路、方法和实战。第一,立足于并发程序基础,详细介绍Java中进行并行程序设计的基本方法。第二,进一步详细介绍JDK中对并行程序的强大支持,帮助读者快速、稳健地进行并行程序开发。第三,详细讨论有关“锁”的优化和提高并行程序性能级别的方法和思路。第四,介绍并行的基本设计模式及Java 8对并行程序的支持和改进。第五,介绍高并发框架Akka的使用方法。最后,详细介绍并行程序的调试方法。

2.4 Java高并发编程详解

  • 简介

本书共分为四个部分:部分详细地介绍了Java多线程的基本用法和各个API的使用,并且着重介绍了线程与Java虚拟机内存之间的关系。第二部分由线程上下文类加载器方法引入,介绍为什么在线程中要有上下文类加载器的方法函数,从而掌握类在JVM的加载和初始化的整个过程。第三部分主要围绕着volatile关键字展开,在该部分中我们将会了解到现代CPU的架构以及Java的内存模型(JMM)。后一部分,主要站在架构设计的高度看待如何巧妙地开发出真正具备并发能力的系统。


3. JVM虚拟机

3.1 深入理解Java虚拟机

  • 简介

第一部分(第1章)走近Java,系统介绍了Java的技术体系、发展历程、虚拟机家族,以及动手编译JDK,了解这部分内容能对学习JVM提供良好的指引。

第二部分(第2~5章)自动内存管理,详细讲解了Java的内存区域与内存溢出、垃圾收集器与内存分配策略、虚拟机性能监控与故障排除等与自动内存管理相关的内容,以及10余个经典的性能优化案例和优化方法;

第三部分(第6~9章)虚拟机执行子系统,深入分析了虚拟机执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎,以及多个类加载及其执行子系统的实战案例;

第四部分(第10~11章)程序编译与代码优化,详细讲解了程序的前、后端编译与优化,包括前端的易用性优化措施,如泛型、主动装箱拆箱、条件编译等的内容的深入分析;以及后端的性能优化措施,如虚拟机的热点探测方法、HotSpot 的即时编译器、提前编译器,以及各种常见的编译期优化技术;

第五部分(第12~13章)高效并发。

3.2 实战Java虚拟机

  • 简介

《实战Java虚拟机——JVM故障诊断与性能优化》共11章。第1~3章介绍了Java虚拟机的定义、总体架构、常用配置参数。第4~5章介绍了垃圾回收的算法和各种垃圾回收器。第6章介绍了Java虚拟机的性能监控和故障诊断工具。第7章详细介绍了对Java堆的分析方法和案例。第8章介绍了Java虚拟机对多线程,尤其是对锁的支持。第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机中类的装载系统。第11章介绍了Java虚拟机的执行系统和字节码,并给出了通过ASM框架进行字节码注入的案例。


4. 网络相关

4.1 图解HTTP

  • 简介

本书对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。本书的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过本书快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书均有介绍。

4.2 HTTP权威指南

  • 简介

本书中,我们尝试着将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节,对HTTP各方面的特性进行了介绍。纵观全书,我们对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。而且,为了节省大家寻找参考文献的时间,我们还对很多HTTP应用程序正常工作所必须的、重要的非HTTP技术进行了介绍。在组织得便于使用的附录中,可以找到按照字母排序的首部参考(这些首部构成了最常见的HTTP文本的基础)。我们希望这种概念性的设计有助于读者对HTTP的使用。


5. 操作系统

5.1 鸟哥的Linux私房菜

  • 简介

本书是最具知名度的Linux入门书《鸟哥的Linux私房菜基础学习篇》的最新版,全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口 shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理,以及主机系统与程序的管理,如查看进程、任务分配和作业管理;第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。


6. 数据结构与算法

6.1 大话数据结构

  • 简介

本书为超级畅销书《大话设计模式》作者程杰潜心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。

6.2 算法

  • 简介

本书全面讲述算法和数据结构的必备知识,具有以下几大特色。

算法领域,的经典参考书,Sedgewick畅销著作的最新版,反映了经过几十年演化而成的算法核心知识体系。

内容全面,全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的50种算法。

全新修订的代码,全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使用。

与实际应用相结合,在重要的科学、工程和商业应用环境下探讨算法,给出了算法的实际代码,而非同类著作常用的伪代码。


7. 数据库

7.1 高性能MySQL

  • 简介

《高性能mysql(第3版)》是mysql 领域的经典之作,拥有广泛的影响力。第3 版更新了大量的内容,不但涵盖了最新mysql 5.5版本的新特性,也讲述了关于固态盘、高可扩展性设计和云计算环境下的数据库相关的新内容,原有的基准测试和性能优化部分也做了大量的扩展和补充。全书共分为16 章和6 个附录,内容涵盖mysql 架构和历史,基准测试和性能剖析,数据库软硬件性能优化,复制、备份和恢复,高可用与高可扩展性,以及云端的mysql 和mysql相关工具等方面的内容。每一章都是相对独立的主题,读者可以有选择性地单独阅读。

7.2 Redis设计与实现

  • 简介

本书全面而完整地讲解了Redis的内部机制与实现方式,对Redis的大多数单机功能以及所有多机功能的实现原理进行了介绍,展示了这些功能的核心数据结构以及关键的算法思想,图示丰富,描述清晰,并给出大量参考信息。通过阅读本书,读者可以快速、有效地了解Redis的内部构造以及运作机制,更好、更高效地使用Redis。


8. 设计模式

8.1 设计模式

  • 简介

这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。

8.2 Head First 设计模式(中文版)

  • 简介

《Head First设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比较特别。第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式等主题,至于第14章则很快地浏览尚未介绍的设计模式,包括Bridge、Builder、Chain of Responsibility、Flyweight、Interpreter、Mediator、Memento、Prototype,Visitor。


最后,

java作为一种语言,除了能够为后端服务之外,还有一种用处——编写安卓应用,当然,安卓也不一定要用java写,诸如官方的语言Kotlin也是可以的。当然,学好了java其实很多事情都可以干了~

谨以此文,与诸君共勉,一起学习,一起进步。

java书籍_2020年java从入门到进阶书籍推荐,基础\自学\编程\数据结构\后端\虚拟机\网络\设计模式书籍...相关推荐

  1. 电脑编程自学(零基础自学编程怎么入门)

    电脑编程自学入手:确定编程学习的方向.编程语言有多种:php,C++,C,C#,JAVA,Python等,每种语言都有不同的优缺点,可以根据自己的兴趣方向选择一门编程语言作为自己的学习目标. 基础阶段 ...

  2. java框架_2020年Java框架排行榜,谁居榜首?

    作者丨Patricia Neil来源丨Java技术驿站https://urlify.cn/ammaYj诞生于1995年的Java,目前已在134,861个网站上广泛使用,包括ESPN.SnapDeal ...

  3. 德扑入门、进阶读物推荐 - 《德州扑克小绿皮书》

    2015腾讯扑克锦标赛TPT 今日在海南三亚开战,之前我也是尝试了三次线上的TPT预选赛,无奈每次都因实力不济,每次都止步初赛,还需要继续磨练. 德扑确实是入门容易,进阶难,即使最大的口袋对A.A作为 ...

  4. java开发13寸_Java 从入门到进阶之路(二十九)

    在之前的文章我们已经可以对本地对文件和目录进行新建和删除等操作,接下来我们来对文件内对具体内容进行操作. 如下代码,我们实现了一个基本的文件写入: 1 /** 2 * java.io.RandomAc ...

  5. java笔记_2020年java程序员、java工程师必备资料(内含java学习思维图、视频教程、源码笔记等)...

    学java的程序猿们看过来 不谈虚的,直来干货. 教程介绍 1.适合零基础学员:从Java语言起源开始,循序渐进,知识点剖析细致且每章配备大量随堂练习 2.课程内容推陈出新:基于JDK 11,将Jav ...

  6. 零基础是学java还是python-零基础自学编程,学Java难还是Python难?

    我第一个语言学的是vb,当时高二,感觉很好玩,就学了. 第二个... 是C++,学之前完全不知道书店里的书<C语言><C++><visual C++>的区别. 后来 ...

  7. 零基础自学编程应读书籍

    如果你是一个程序员,除了编码之外,你还需要大量的阅读.书籍是知识和智慧的重要来源.但不幸的是,现在很多人已经不愿意看书了.程序员更是罕见地会去读书,最常见的是依靠互联网搜索结果来找寻答案.  技术向前 ...

  8. 【从入门到进阶】vim基础配置+ 常用插件(NERDTree, cscope, rainbow等)

    文章目录 前言 一.vim基础配置 二.常用插件 2.1 Vundle 2.1.1 Vundle安装 2.1.2 Vundle配置 2.1.3 安装插件 2.1.4 Vundle常用指令 2.2 NE ...

  9. Java程序员:java游戏开发引擎

    正文 在写这个文章之前,我花了点时间,自己臆想了一个电商系统,基本上算是麻雀虽小五脏俱全,我今天就用它开刀,一步步剖析,我会讲一下我们可能会接触的技术栈可能不全,但是够用,最后给个学习路线. Tip: ...

最新文章

  1. 计算机主机电池,为什么电脑主机板上面有电池?很多人可能根本不知道
  2. vue-自定义组件传值
  3. python套接字socket的作用_【学习笔记】python实现的套接字socket
  4. Limesurvey-2.55 (Ubuntu 16.04)
  5. python2中可以使用print()函数吗_在Python2.x中使用print()(函数版本)
  6. 使用Maven实施自定义JSF 2.0组件
  7. mysql df_MySQL主从复制实战
  8. 企业靠一套数据平台实现“低成本运营战略”,降低成本600万
  9. ReportViewer教程(12)-按组折叠
  10. vs 错误提示及解决方案
  11. android报错:org.ksoap2.SoapFault cannot be cast to org.ksoap2.serialization.SoapObject
  12. Visual Studio里使用正则表达式进行查找与替换
  13. mysql sum没法使用,mysql – 使用SUM()而不对结果进行分组
  14. 上古卷轴5python_python 基础(五)协程 —— 微线程 greenlet gevent
  15. PLC跑马灯程序设计
  16. WPS 表格中单元格文字后插入公式
  17. 四、回归分析之线性回归模型构建
  18. 计算机音乐桃源恋歌,GARNiDELiA《桃源恋歌》[FLAC/MP3-320K]
  19. 数字化营销3大趋势:全域、全链路、全闭环
  20. android 机器人gif,看完这15张GIF图 就再也不用担心机器人叛乱了

热门文章

  1. 68 个人脸landmark 点分布图
  2. ajax head带参数两次请求
  3. 简述sd卡2.0协议_【正点原子FPGA连载】第十二章SD卡读写TXT文本实验-领航者 ZYNQ 之嵌入式开发指南...
  4. 华科计算机系研究生遗书,看完华中科大研究生遗书《狗血的研究生生涯》,泪目了!有话要说...
  5. SQL Server面试集合
  6. java default value_java-如何为@RequestParam的defaultValue提供表达式
  7. shell备份mysql思路_写一个shell脚本备份mysql数据库的步骤
  8. linux常用命令笔记大全
  9. 北风设计模式课程---创建模式、结构模式、行为模式的区别
  10. 第一章:Shiro简介