Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dunwu/java-tutorial

:coffee: 老司机在 Java 技术领域的十年积累。
https://github.com/dunwu/java-tutorial

Last synced: about 2 months ago
JSON representation

:coffee: 老司机在 Java 技术领域的十年积累。

Awesome Lists containing this project

README

        



logo


star


fork


build


code style

JavaTutorial

> ☕ **java-tutorial** 是一个 Java 教程,汇集一个老司机在 Java 领域的十年积累。
>
> - 🔁 项目同步维护:[Github](https://github.com/dunwu/java-tutorial/) | [Gitee](https://gitee.com/turnon/java-tutorial/)
> - 📖 电子书阅读:[Github Pages](https://dunwu.github.io/java-tutorial/) | [Gitee Pages](https://turnon.gitee.io/java-tutorial/)
>
> 说明:
>
> - 下面的内容清单中,凡是有 📚 标记的技术,都已整理成详细的教程。
> - 部分技术因为可以应用于不同领域,所以可能会同时出现在不同的类别下。

## 📖 内容

### JavaSE

> 📚 [javacore](https://dunwu.github.io/javacore/) 是一个 Java 核心技术教程。内容包含:Java 基础特性、Java 高级特性、Java 并发、JVM、Java IO 等。

### JavaEE

#### JavaWeb

- [JavaWeb 面经](docs/02.JavaEE/01.JavaWeb/99.JavaWeb面经.md)
- [JavaWeb 之 Servlet 指南](docs/02.JavaEE/01.JavaWeb/01.JavaWeb之Servlet指南.md)
- [JavaWeb 之 Jsp 指南](docs/02.JavaEE/01.JavaWeb/02.JavaWeb之Jsp指南.md)
- [JavaWeb 之 Filter 和 Listener](docs/02.JavaEE/01.JavaWeb/03.JavaWeb之Filter和Listener.md)
- [JavaWeb 之 Cookie 和 Session](docs/02.JavaEE/01.JavaWeb/04.JavaWeb之Cookie和Session.md)

#### Java 服务器

> Tomcat 和 Jetty 都是 Java 比较流行的轻量级服务器。
>
> Nginx 是目前最流行的反向代理服务器,也常用于负载均衡。

- [Tomcat 快速入门](docs/02.JavaEE/02.服务器/01.Tomcat/01.Tomcat快速入门.md)
- [Tomcat 连接器](docs/02.JavaEE/02.服务器/01.Tomcat/02.Tomcat连接器.md)
- [Tomcat 容器](docs/02.JavaEE/02.服务器/01.Tomcat/03.Tomcat容器.md)
- [Tomcat 优化](docs/02.JavaEE/02.服务器/01.Tomcat/04.Tomcat优化.md)
- [Tomcat 和 Jetty](docs/02.JavaEE/02.服务器/01.Tomcat/05.Tomcat和Jetty.md)
- [Jetty](docs/02.JavaEE/02.服务器/02.Jetty.md)

### Java 软件

#### Java 构建

> Java 项目需要通过 [**构建工具**](docs/11.软件/01.构建) 来管理项目依赖,完成编译、打包、发布、生成 JavaDoc 等任务。
>
> - 目前最主流的构建工具是 Maven,它的功能非常强大。
> - Gradle 号称是要替代 Maven 等构件工具,它的版本管理确实简洁,但是需要学习 Groovy,学习成本比 Maven 高。
> - Ant 功能比 Maven 和 Gradle 要弱,现代 Java 项目基本不用了,但也有一些传统的 Java 项目还在使用。

- [Maven](docs/11.软件/01.构建/01.Maven) 📚
- [Maven 快速入门](docs/11.软件/01.构建/01.Maven/01.Maven快速入门.md)
- [Maven 教程之 pom.xml 详解](docs/11.软件/01.构建/01.Maven/02.Maven教程之pom.xml详解.md)
- [Maven 教程之 settings.xml 详解](docs/11.软件/01.构建/01.Maven/03.Maven教程之settings.xml详解.md)
- [Maven 实战问题和最佳实践](docs/11.软件/01.构建/01.Maven/04.Maven实战问题和最佳实践.md)
- [Maven 教程之发布 jar 到私服或中央仓库](docs/11.软件/01.构建/01.Maven/05.Maven教程之发布jar到私服或中央仓库.md)
- [Maven 插件之代码检查](docs/11.软件/01.构建/01.Maven/06.Maven插件之代码检查.md)
- [Ant 简易教程](docs/11.软件/01.构建/02.Ant.md)

#### Java IDE

> 自从有了 [**IDE**](docs/11.软件/02.IDE),写代码从此就告别了刀耕火种的蛮荒时代。
>
> - [Eclipse](docs/11.软件/02.IDE/02.Eclipse.md) 是久负盛名的开源 Java IDE,我的学生时代一直使用它写 Java。
> - 曾经抗拒从转 [Intellij Idea](docs/11.软件/02.IDE/01.Intellij.md) ,但后来发现真香,不得不说,确实是目前最优秀的 Java IDE。
> - 你可以在 [vscode](docs/11.软件/02.IDE/03.VsCode.md) 中写各种语言,只要安装相应插件即可。如果你的项目中使用了很多种编程语言,又懒得在多个 IDE 之间切换,那么就用 vscode 来一网打尽吧。

- [Intellij Idea](docs/11.软件/02.IDE/01.Intellij.md)
- [Eclipse](docs/11.软件/02.IDE/02.Eclipse.md)
- [vscode](docs/11.软件/02.IDE/03.VsCode.md)

#### Java 监控诊断

> [监控/诊断](docs/11.软件/03.监控诊断) 工具主要用于 Java 应用的运维。通过采集、分析、存储、可视化应用的有效数据,帮助开发者、使用者快速定位问题,找到性能瓶颈。

- [监控工具对比](docs/11.软件/03.监控诊断/01.监控工具对比.md)
- [CAT](docs/11.软件/03.监控诊断/02.CAT.md)
- [Zipkin](docs/11.软件/03.监控诊断/03.Zipkin.md)
- [SkyWalking](docs/11.软件/03.监控诊断/04.Skywalking.md)
- [Arthas](docs/11.软件/03.监控诊断/05.Arthas.md)

### Java 工具

#### Java IO

- [JSON 序列化](docs/12.工具/01.IO/01.JSON序列化.md) - [fastjson](https://github.com/alibaba/fastjson)、[Jackson](https://github.com/FasterXML/jackson)、[Gson](https://github.com/google/gson)
- [二进制序列化](docs/12.工具/01.IO/02.二进制序列化.md) - [Protobuf](https://developers.google.com/protocol-buffers)、[Thrift](https://thrift.apache.org/)、[Hessian](http://hessian.caucho.com/)、[Kryo](https://github.com/EsotericSoftware/kryo)、[FST](https://github.com/RuedigerMoeller/fast-serialization)

#### JavaBean 工具

- [Lombok](docs/12.工具/02.JavaBean/01.Lombok.md)
- [Dozer](docs/12.工具/02.JavaBean/02.Dozer.md)

#### Java 模板引擎

- [Freemark](docs/12.工具/03.模板引擎/01.Freemark.md)
- [Velocity](docs/12.工具/03.模板引擎/03.Velocity.md)
- [Thymeleaf](docs/12.工具/03.模板引擎/02.Thymeleaf.md)

#### Java 测试工具

- [Junit](docs/12.工具/04.测试/01.Junit.md)
- [Mockito](docs/12.工具/04.测试/02.Mockito.md)
- [Jmeter](docs/12.工具/04.测试/03.Jmeter.md)
- [JMH](docs/12.工具/04.测试/04.JMH.md)

#### 其他

- [Java 日志](docs/12.工具/99.其他/01.Java日志.md)
- [Java 工具包](docs/12.工具/99.其他/02.Java工具包.md)
- [Reflections](docs/12.工具/99.其他/03.Reflections.md)
- [JavaMail](docs/12.工具/99.其他/04.JavaMail.md)
- [Jsoup](docs/12.工具/99.其他/05.Jsoup.md)
- [Thumbnailator](docs/12.工具/99.其他/06.Thumbnailator.md)
- [Zxing](docs/12.工具/99.其他/07.Zxing.md)

### Java 框架

#### ORM

- [Mybatis 快速入门](docs/13.框架/11.ORM/01.Mybatis快速入门.md)
- [Mybatis 原理](docs/13.框架/11.ORM/02.Mybatis原理.md)

#### Spring

📚 [spring-tutorial](https://dunwu.github.io/spring-tutorial/) 是一个 Spring 实战教程。

#### Spring Boot

📚 [Spring Boot 教程](https://dunwu.github.io/spring-boot-tutorial/) 是一个 Spring Boot 实战教程。

#### 安全

> Java 领域比较流行的安全框架就是 shiro 和 spring-security。
>
> shiro 更为简单、轻便,容易理解,能满足大多数基本安全场景下的需要。
>
> spring-security 功能更丰富,也比 shiro 更复杂。值得一提的是由于 spring-security 是 spring 团队开发,所以集成 spring 和 spring-boot 框架更容易。

- [Shiro](docs/13.框架/12.安全/01.Shiro.md)
- [SpringSecurity](docs/13.框架/12.安全/02.SpringSecurity.md)

#### IO

- [Shiro](docs/13.框架/13.IO/01.Netty.md)

#### 微服务

- [Dubbo](docs/13.框架/14.微服务/01.Dubbo.md)

### Java 中间件

#### MQ

> 消息队列(Message Queue,简称 MQ)技术是分布式应用间交换信息的一种技术。
>
> 消息队列主要解决应用耦合,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。
>
> 如果想深入学习各种消息队列产品,建议先了解一下 [消息队列基本原理](https://dunwu.github.io/blog/pages/1fd240/) ,有助于理解消息队列特性的实现和设计思路。

- [消息队列面试](docs/14.中间件/01.MQ/01.消息队列面试.md)
- [消息队列基本原理](docs/14.中间件/01.MQ/02.消息队列基本原理.md)
- [RocketMQ](docs/14.中间件/01.MQ/03.RocketMQ.md)
- [ActiveMQ](docs/14.中间件/01.MQ/04.ActiveMQ.md)

#### 缓存

> 缓存可以说是优化系统性能的第一手段,在各种技术中都会有缓存的应用。
>
> 如果想深入学习缓存,建议先了解一下 [缓存基本原理](https://dunwu.github.io/design/distributed/分布式缓存.html),有助于理解缓存的特性、原理,使用缓存常见的问题及解决方案。

- [缓存面试题](docs/14.中间件/02.缓存/01.缓存面试题.md)
- [Java 缓存中间件](docs/14.中间件/02.缓存/02.Java缓存中间件.md)
- [Memcached 快速入门](docs/14.中间件/02.缓存/03.Memcached.md)
- [Ehcache 快速入门](docs/14.中间件/02.缓存/04.Ehcache.md)
- [Java 进程内缓存](docs/14.中间件/02.缓存/05.Java进程内缓存.md)
- [Http 缓存](docs/14.中间件/02.缓存/06.Http缓存.md)

#### 流量控制

- [Hystrix](docs/14.中间件/03.流量控制/01.Hystrix.md)

### [大数据](https://dunwu.github.io/bigdata-tutorial)

> 大数据技术点以归档在:[bigdata-tutorial](https://dunwu.github.io/bigdata-tutorial)

- [Hdfs](https://dunwu.github.io/bigdata-tutorial/hdfs) 📚
- [Hbase](https://dunwu.github.io/bigdata-tutorial/hbase) 📚
- [Hive](https://dunwu.github.io/bigdata-tutorial/hive) 📚
- [MapReduce](https://dunwu.github.io/bigdata-tutorial/mapreduce)
- [Yarn](https://dunwu.github.io/bigdata-tutorial/yarn)
- [ZooKeeper](https://dunwu.github.io/bigdata-tutorial/zookeeper) 📚
- [Kafka](https://dunwu.github.io/bigdata-tutorial/kafka) 📚
- Spark
- Storm
- [Flink](https://dunwu.github.io/bigdata-tutorial/tree/master/docs/flink)

## 📚 资料

- Java 经典书籍
- [《Effective Java 中文版》](https://item.jd.com/12507084.html) - 本书介绍了在 Java 编程中 78 条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。同推荐《重构 : 改善既有代码的设计》、《代码整洁之道》、《代码大全》,有一定的内容重叠。
- [《Java 并发编程实战》](https://item.jd.com/10922250.html) - 本书深入浅出地介绍了 Java 线程和并发,是一本完美的 Java 并发参考手册。
- [《深入理解 Java 虚拟机》](https://item.jd.com/11252778.html) - 不去了解 JVM 的工程师,和咸鱼有什么区
- [《Maven 实战》](https://item.jd.com/10476794.html) - 国内最权威的 Maven 专家的力作,唯一一本哦!
- 其他领域书籍
- [《Redis 设计与实现》](https://item.jd.com/11486101.html) - 系统而全面地描述了 Redis 内部运行机制。图示丰富,描述清晰,并给出大量参考信息,是 NoSQL 数据库开发人员案头必备。
- [《鸟哥的 Linux 私房菜 (基础学习篇)》](https://item.jd.com/12443890.html) - 本书是最具知名度的 Linux 入门书《鸟哥的 Linux 私房菜基础学习篇》的最新版,全面而详细地介绍了 Linux 操作系统。内容非常全面,建议挑选和自己实际工作相关度较高的,其他部分有需要再阅读。
- [《Head First 设计模式》](https://item.jd.com/10100236.html) - 《Head First 设计模式》(中文版)共有 14 章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部 23 个设计模式。
- [《HTTP 权威指南》](https://item.jd.com/11056556.html) - 本书尝试着将 HTTP 中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节,对 HTTP 各方面的特性进行了介绍。纵观全书,对 HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。
- [《TCP/IP 详解 系列》](https://item.jd.com/11966296.html) - 完整而详细的 TCP/IP 协议指南。针对任何希望理解 TCP/IP 协议是如何实现的读者设计。
- [《剑指 Offer:名企面试官精讲典型编程题》](https://item.jd.com/12163054.html) - 剖析了 80 个典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这 5 个面试要点。

## 🚪 传送

◾ 🏠 [JAVA-TUTORIAL 首页](https://github.com/dunwu/java-tutorial) ◾ 🎯 [我的博客](https://github.com/dunwu/blog) ◾

> 你可能会感兴趣:

- [Java 教程](https://github.com/dunwu/java-tutorial) 📚
- [JavaCore 教程](https://dunwu.github.io/javacore/) 📚
- [Spring 教程](https://dunwu.github.io/spring-tutorial/) 📚
- [Spring Boot 教程](https://dunwu.github.io/spring-boot-tutorial/) 📚
- [数据库教程](https://dunwu.github.io/db-tutorial/) 📚
- [数据结构和算法教程](https://dunwu.github.io/algorithm-tutorial/) 📚
- [Linux 教程](https://dunwu.github.io/linux-tutorial/) 📚
- [Nginx 教程](https://github.com/dunwu/nginx-tutorial/) 📚