|
1 | 1 | <p align="center"> |
2 | 2 | <a href="https://dunwu.github.io/java-tutorial/" target="_blank" rel="noopener noreferrer"> |
3 | | - <img src="https://raw.githubusercontent.com/dunwu/images/dev/common/dunwu-logo-200.png" alt="logo" width="150px"/> |
| 3 | + <img src="https://raw.githubusercontent.com/dunwu/images/dev/common/dunwu-logo.png" alt="logo" width="150px"/> |
4 | 4 | </a> |
5 | 5 | </p> |
6 | 6 |
|
|
18 | 18 | <img alt="commit" class="no-zoom" src="https://img.shields.io/github/workflow/status/dunwu/java-tutorial/CI?style=for-the-badge"> |
19 | 19 | </a> |
20 | 20 |
|
21 | | - <a href="https://www.apache.org/licenses/LICENSE-2.0"> |
| 21 | + <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh"> |
22 | 22 | <img alt="code style" class="no-zoom" src="https://img.shields.io/github/license/dunwu/java-tutorial?style=for-the-badge"> |
23 | 23 | </a> |
24 | 24 |
|
|
44 | 44 |
|
45 | 45 | ### JavaEE |
46 | 46 |
|
47 | | -> [☕ JavaEE](docs/01.JavaEE/README.md) 技术是 Java Web 的基石 |
| 47 | +#### JavaWeb |
48 | 48 |
|
49 | | -- [JavaEE 面经](docs/01.JavaEE/01.JavaEE面经.md) |
50 | | -- [JavaEE 之 Servlet 指南](docs/01.JavaEE/02.JavaEE之Servlet指南.md) |
51 | | -- [JavaEE 之 Jsp 指南](docs/01.JavaEE/03.JavaEE之Jsp指南.md) |
52 | | -- [JavaEE 之 Filter 和 Listener](docs/01.JavaEE/04.JavaEE之Filter和Listener.md) |
53 | | -- [JavaEE 之 Cookie 和 Session](docs/01.JavaEE/05.JavaEE之Cookie和Session.md) |
| 49 | +- [JavaWeb 面经](docs/02.JavaEE/01.JavaWeb/99.JavaWeb面经.md) |
| 50 | +- [JavaWeb 之 Servlet 指南](docs/02.JavaEE/01.JavaWeb/01.JavaWeb之Servlet指南.md) |
| 51 | +- [JavaWeb 之 Jsp 指南](docs/02.JavaEE/01.JavaWeb/02.JavaWeb之Jsp指南.md) |
| 52 | +- [JavaWeb 之 Filter 和 Listener](docs/02.JavaEE/01.JavaWeb/03.JavaWeb之Filter和Listener.md) |
| 53 | +- [JavaWeb 之 Cookie 和 Session](docs/02.JavaEE/01.JavaWeb/04.JavaWeb之Cookie和Session.md) |
| 54 | + |
| 55 | +#### Java 服务器 |
| 56 | + |
| 57 | +> Tomcat 和 Jetty 都是 Java 比较流行的轻量级服务器。 |
| 58 | +> |
| 59 | +> Nginx 是目前最流行的反向代理服务器,也常用于负载均衡。 |
| 60 | +
|
| 61 | +- [Tomcat 快速入门](docs/02.JavaEE/02.服务器/01.Tomcat/01.Tomcat快速入门.md) |
| 62 | +- [Tomcat 连接器](docs/02.JavaEE/02.服务器/01.Tomcat/02.Tomcat连接器.md) |
| 63 | +- [Tomcat 容器](docs/02.JavaEE/02.服务器/01.Tomcat/03.Tomcat容器.md) |
| 64 | +- [Tomcat 优化](docs/02.JavaEE/02.服务器/01.Tomcat/04.Tomcat优化.md) |
| 65 | +- [Tomcat 和 Jetty](docs/02.JavaEE/02.服务器/01.Tomcat/05.Tomcat和Jetty.md) |
| 66 | +- [Jetty](docs/02.JavaEE/02.服务器/02.Jetty.md) |
54 | 67 |
|
55 | 68 | ### Java 软件 |
56 | 69 |
|
57 | 70 | #### Java 构建 |
58 | 71 |
|
59 | | -> Java 项目需要通过 [**构建工具**](docs/02.Java软件/01.Java构建) 来管理项目依赖,完成编译、打包、发布、生成 JavaDoc 等任务。 |
| 72 | +> Java 项目需要通过 [**构建工具**](docs/11.软件/01.构建) 来管理项目依赖,完成编译、打包、发布、生成 JavaDoc 等任务。 |
60 | 73 | > |
61 | 74 | > - 目前最主流的构建工具是 Maven,它的功能非常强大。 |
62 | 75 | > - Gradle 号称是要替代 Maven 等构件工具,它的版本管理确实简洁,但是需要学习 Groovy,学习成本比 Maven 高。 |
63 | 76 | > - Ant 功能比 Maven 和 Gradle 要弱,现代 Java 项目基本不用了,但也有一些传统的 Java 项目还在使用。 |
64 | 77 |
|
65 | | -- [Maven](docs/02.Java软件/01.Java构建/01.Maven) 📚 |
66 | | - - [Maven 入门指南](docs/02.Java软件/01.Java构建/01.Maven/01.Maven入门指南.md) |
67 | | - - [Maven 教程之 pom.xml 详解](docs/02.Java软件/01.Java构建/01.Maven/02.Maven教程之pom.xml详解.md) |
68 | | - - [Maven 教程之 settings.xml 详解](docs/02.Java软件/01.Java构建/01.Maven/03.Maven教程之settings.xml详解.md) |
69 | | - - [Maven 实战问题和最佳实践](docs/02.Java软件/01.Java构建/01.Maven/04.Maven实战问题和最佳实践.md) |
70 | | - - [Maven 教程之发布 jar 到私服或中央仓库](docs/02.Java软件/01.Java构建/01.Maven/05.Maven教程之发布jar到私服或中央仓库.md) |
71 | | - - [Maven 插件之代码检查](docs/02.Java软件/01.Java构建/01.Maven/06.Maven插件之代码检查.md) |
72 | | -- [Ant 简易教程](docs/02.Java软件/01.Java构建/02.Ant.md) |
| 78 | +- [Maven](docs/11.软件/01.构建/01.Maven) 📚 |
| 79 | + - [Maven 快速入门](docs/11.软件/01.构建/01.Maven/01.Maven快速入门.md) |
| 80 | + - [Maven 教程之 pom.xml 详解](docs/11.软件/01.构建/01.Maven/02.Maven教程之pom.xml详解.md) |
| 81 | + - [Maven 教程之 settings.xml 详解](docs/11.软件/01.构建/01.Maven/03.Maven教程之settings.xml详解.md) |
| 82 | + - [Maven 实战问题和最佳实践](docs/11.软件/01.构建/01.Maven/04.Maven实战问题和最佳实践.md) |
| 83 | + - [Maven 教程之发布 jar 到私服或中央仓库](docs/11.软件/01.构建/01.Maven/05.Maven教程之发布jar到私服或中央仓库.md) |
| 84 | + - [Maven 插件之代码检查](docs/11.软件/01.构建/01.Maven/06.Maven插件之代码检查.md) |
| 85 | +- [Ant 简易教程](docs/11.软件/01.构建/02.Ant.md) |
73 | 86 |
|
74 | 87 | #### Java IDE |
75 | 88 |
|
76 | | -> 自从有了 [**IDE**](docs/02.Java软件/02.JavaIDE),写代码从此就告别了刀耕火种的蛮荒时代。 |
77 | | -> |
78 | | -> - [Eclipse](docs/02.Java软件/02.JavaIDE/02.Eclipse.md) 是久负盛名的开源 Java IDE,我的学生时代一直使用它写 Java。 |
79 | | -> - 曾经抗拒从转 [Intellij Idea](docs/02.Java软件/02.JavaIDE/01.Intellij.md) ,但后来发现真香,不得不说,确实是目前最优秀的 Java IDE。 |
80 | | -> - 你可以在 [vscode](docs/02.Java软件/02.JavaIDE/03.VsCode.md) 中写各种语言,只要安装相应插件即可。如果你的项目中使用了很多种编程语言,又懒得在多个 IDE 之间切换,那么就用 vscode 来一网打尽吧。 |
81 | | -
|
82 | | -- [Intellij Idea](docs/02.Java软件/02.JavaIDE/01.Intellij.md) |
83 | | -- [Eclipse](docs/02.Java软件/02.JavaIDE/02.Eclipse.md) |
84 | | -- [vscode](docs/02.Java软件/02.JavaIDE/03.VsCode.md) |
85 | | - |
86 | | -#### Java 服务器 |
87 | | - |
88 | | -> Tomcat 和 Jetty 都是 Java 比较流行的轻量级服务器。 |
| 89 | +> 自从有了 [**IDE**](docs/11.软件/02.IDE),写代码从此就告别了刀耕火种的蛮荒时代。 |
89 | 90 | > |
90 | | -> Nginx 是目前最流行的反向代理服务器,也常用于负载均衡。 |
| 91 | +> - [Eclipse](docs/11.软件/02.IDE/02.Eclipse.md) 是久负盛名的开源 Java IDE,我的学生时代一直使用它写 Java。 |
| 92 | +> - 曾经抗拒从转 [Intellij Idea](docs/11.软件/02.IDE/01.Intellij.md) ,但后来发现真香,不得不说,确实是目前最优秀的 Java IDE。 |
| 93 | +> - 你可以在 [vscode](docs/11.软件/02.IDE/03.VsCode.md) 中写各种语言,只要安装相应插件即可。如果你的项目中使用了很多种编程语言,又懒得在多个 IDE 之间切换,那么就用 vscode 来一网打尽吧。 |
91 | 94 |
|
92 | | -- [Tomcat 应用指南](docs/02.Java软件/03.Java服务器/01.Tomcat/01.Tomcat应用指南.md) |
93 | | -- [Tomcat 连接器](docs/02.Java软件/03.Java服务器/01.Tomcat/02.Tomcat连接器.md) |
94 | | -- [Tomcat 容器](docs/02.Java软件/03.Java服务器/01.Tomcat/03.Tomcat容器.md) |
95 | | -- [Tomcat 优化](docs/02.Java软件/03.Java服务器/01.Tomcat/04.Tomcat优化.md) |
96 | | -- [Tomcat 和 Jetty](docs/02.Java软件/03.Java服务器/01.Tomcat/05.Tomcat和Jetty.md) |
97 | | -- [Jetty](docs/02.Java软件/03.Java服务器/02.Jetty.md) |
| 95 | +- [Intellij Idea](docs/11.软件/02.IDE/01.Intellij.md) |
| 96 | +- [Eclipse](docs/11.软件/02.IDE/02.Eclipse.md) |
| 97 | +- [vscode](docs/11.软件/02.IDE/03.VsCode.md) |
98 | 98 |
|
99 | 99 | #### Java 监控诊断 |
100 | 100 |
|
101 | | -> [监控/诊断](docs/02.Java软件/04.Java监控诊断) 工具主要用于 Java 应用的运维。通过采集、分析、存储、可视化应用的有效数据,帮助开发者、使用者快速定位问题,找到性能瓶颈。 |
| 101 | +> [监控/诊断](docs/11.软件/03.监控诊断) 工具主要用于 Java 应用的运维。通过采集、分析、存储、可视化应用的有效数据,帮助开发者、使用者快速定位问题,找到性能瓶颈。 |
102 | 102 |
|
103 | | -- [监控工具对比](docs/02.Java软件/04.Java监控诊断/01.监控诊断工具.md) |
104 | | -- [CAT](docs/02.Java软件/04.Java监控诊断/02.CAT.md) |
105 | | -- [Zipkin](docs/02.Java软件/04.Java监控诊断/03.Zipkin.md) |
106 | | -- [SkyWalking](docs/02.Java软件/04.Java监控诊断/04.Skywalking.md) |
107 | | -- [Arthas](docs/02.Java软件/04.Java监控诊断/05.Arthas.md) |
| 103 | +- [监控工具对比](docs/11.软件/03.监控诊断/01.监控工具对比.md) |
| 104 | +- [CAT](docs/11.软件/03.监控诊断/02.CAT.md) |
| 105 | +- [Zipkin](docs/11.软件/03.监控诊断/03.Zipkin.md) |
| 106 | +- [SkyWalking](docs/11.软件/03.监控诊断/04.Skywalking.md) |
| 107 | +- [Arthas](docs/11.软件/03.监控诊断/05.Arthas.md) |
108 | 108 |
|
109 | 109 | ### Java 工具 |
110 | 110 |
|
111 | | -#### Java 序列化工具 |
| 111 | +#### Java IO |
112 | 112 |
|
113 | | -- [JSON 序列化](docs/03.Java工具/01.Java序列化工具/01.JSON序列化.md) - [fastjson](https://github.com/alibaba/fastjson)、[Jackson](https://github.com/FasterXML/jackson)、[Gson](https://github.com/google/gson) |
114 | | -- [二进制序列化](docs/03.Java工具/01.Java序列化工具/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) |
| 113 | +- [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) |
| 114 | +- [二进制序列化](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) |
115 | 115 |
|
116 | 116 | #### JavaBean 工具 |
117 | 117 |
|
118 | | -- [Lombok](docs/03.Java工具/02.JavaBean工具/01.Lombok.md) |
119 | | -- [Dozer](docs/03.Java工具/02.JavaBean工具/02.Dozer.md) |
| 118 | +- [Lombok](docs/12.工具/02.JavaBean/01.Lombok.md) |
| 119 | +- [Dozer](docs/12.工具/02.JavaBean/02.Dozer.md) |
120 | 120 |
|
121 | 121 | #### Java 模板引擎 |
122 | 122 |
|
123 | | -- [Freemark](docs/03.Java工具/03.Java模板引擎/01.Freemark.md) |
124 | | -- [Velocity](docs/03.Java工具/03.Java模板引擎/02.Thymeleaf.md) |
125 | | -- [Thymeleaf](docs/03.Java工具/03.Java模板引擎/03.Velocity.md) |
| 123 | +- [Freemark](docs/12.工具/03.模板引擎/01.Freemark.md) |
| 124 | +- [Velocity](docs/12.工具/03.模板引擎/02.Thymeleaf.md) |
| 125 | +- [Thymeleaf](docs/12.工具/03.模板引擎/03.Velocity.md) |
126 | 126 |
|
127 | 127 | #### Java 测试工具 |
128 | 128 |
|
129 | | -- [Freemark](docs/03.Java工具/04.Java测试工具/01.Junit.md) |
130 | | -- [Velocity](docs/03.Java工具/04.Java测试工具/02.Mockito.md) |
131 | | -- [Thymeleaf](docs/03.Java工具/04.Java测试工具/03.Jmeter.md) |
132 | | -- [Thymeleaf](docs/03.Java工具/04.Java测试工具/04.JMH.md) |
| 129 | +- [Junit](docs/12.工具/04.测试/01.Junit.md) |
| 130 | +- [Mockito](docs/12.工具/04.测试/02.Mockito.md) |
| 131 | +- [Jmeter](docs/12.工具/04.测试/03.Jmeter.md) |
| 132 | +- [JMH](docs/12.工具/04.测试/04.JMH.md) |
133 | 133 |
|
134 | 134 | #### 其他 |
135 | 135 |
|
136 | | -- [Java 日志](docs/03.Java工具/05.其他Java工具/01.Java日志.md) |
137 | | -- [Java 工具包](docs/03.Java工具/05.其他Java工具/02.Java工具包.md) |
138 | | -- [Java 反射工具](docs/03.Java工具/05.其他Java工具/03.Java反射工具.md) |
139 | | -- [JavaMail](docs/03.Java工具/05.其他Java工具/04.JavaMail.md) |
140 | | -- [Jsoup 应用](docs/03.Java工具/05.其他Java工具/05.Jsoup应用.md) |
141 | | -- [Thumbnailator 应用](docs/03.Java工具/05.其他Java工具/06.Thumbnailator应用.md) |
142 | | -- [Zxing 应用](docs/03.Java工具/05.其他Java工具/07.Zxing应用.md) |
| 136 | +- [Java 日志](docs/12.工具/99.其他/01.Java日志.md) |
| 137 | +- [Java 工具包](docs/12.工具/99.其他/02.Java工具包.md) |
| 138 | +- [Reflections](docs/12.工具/99.其他/03.Reflections.md) |
| 139 | +- [JavaMail](docs/12.工具/99.其他/04.JavaMail.md) |
| 140 | +- [Jsoup](docs/12.工具/99.其他/05.Jsoup.md) |
| 141 | +- [Thumbnailator](docs/12.工具/99.其他/06.Thumbnailator.md) |
| 142 | +- [Zxing](docs/12.工具/99.其他/07.Zxing.md) |
143 | 143 |
|
144 | 144 | ### Java 框架 |
145 | 145 |
|
| 146 | +#### ORM |
| 147 | + |
| 148 | +- [Mybatis 快速入门](docs/13.框架/11.ORM/01.Mybatis快速入门.md) |
| 149 | +- [Mybatis 原理](docs/13.框架/11.ORM/02.Mybatis原理.md) |
| 150 | + |
146 | 151 | #### Spring |
147 | 152 |
|
148 | 153 | 📚 [spring-tutorial](https://dunwu.github.io/spring-tutorial/) 是一个 Spring 实战教程。 |
|
151 | 156 |
|
152 | 157 | 📚 [Spring Boot 教程](https://dunwu.github.io/spring-boot-tutorial/) 是一个 Spring Boot 实战教程。 |
153 | 158 |
|
154 | | -#### ORM |
155 | | - |
156 | | -- [Mybatis 应用指南](docs/04.Java框架/01.ORM/01.Mybatis应用指南.md) |
157 | | -- [Mybatis 原理](docs/04.Java框架/01.ORM/02.Mybatis原理.md) |
158 | | - |
159 | 159 | #### 安全 |
160 | 160 |
|
161 | 161 | > Java 领域比较流行的安全框架就是 shiro 和 spring-security。 |
|
164 | 164 | > |
165 | 165 | > spring-security 功能更丰富,也比 shiro 更复杂。值得一提的是由于 spring-security 是 spring 团队开发,所以集成 spring 和 spring-boot 框架更容易。 |
166 | 166 |
|
167 | | -- [Shiro](docs/04.Java框架/02.安全/01.Shiro.md) |
168 | | -- [SpringSecurity](docs/04.Java框架/02.安全/02.SpringSecurity.md) |
| 167 | +- [Shiro](docs/13.框架/12.安全/01.Shiro.md) |
| 168 | +- [SpringSecurity](docs/13.框架/12.安全/02.SpringSecurity.md) |
169 | 169 |
|
170 | 170 | #### IO |
171 | 171 |
|
172 | | -- [Shiro](docs/04.Java框架/03.IO/01.Netty.md) |
| 172 | +- [Shiro](docs/13.框架/13.IO/01.Netty.md) |
| 173 | + |
| 174 | +#### 微服务 |
| 175 | + |
| 176 | +- [Dubbo](docs/13.框架/14.微服务/01.Dubbo.md) |
173 | 177 |
|
174 | 178 | ### Java 中间件 |
175 | 179 |
|
176 | | -#### 消息队列 |
| 180 | +#### MQ |
177 | 181 |
|
178 | 182 | > 消息队列(Message Queue,简称 MQ)技术是分布式应用间交换信息的一种技术。 |
179 | 183 | > |
180 | 184 | > 消息队列主要解决应用耦合,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 |
181 | 185 | > |
182 | 186 | > 如果想深入学习各种消息队列产品,建议先了解一下 [消息队列基本原理](https://github.com/dunwu/blog/blob/master/source/_posts/theory/mq.md) ,有助于理解消息队列特性的实现和设计思路。 |
183 | 187 |
|
184 | | -- [消息队列面试](docs/05.Java中间件/01.消息队列/01.消息队列面试.md) |
185 | | -- [消息队列基本原理](docs/05.Java中间件/01.消息队列/02.消息队列基本原理.md) |
186 | | -- [RocketMQ](docs/05.Java中间件/01.消息队列/03.RocketMQ.md) |
187 | | -- [ActiveMQ](docs/05.Java中间件/01.消息队列/04.ActiveMQ.md) |
| 188 | +- [消息队列面试](docs/14.中间件/01.MQ/01.消息队列面试.md) |
| 189 | +- [消息队列基本原理](docs/14.中间件/01.MQ/02.消息队列基本原理.md) |
| 190 | +- [RocketMQ](docs/14.中间件/01.MQ/03.RocketMQ.md) |
| 191 | +- [ActiveMQ](docs/14.中间件/01.MQ/04.ActiveMQ.md) |
188 | 192 |
|
189 | 193 | #### 缓存 |
190 | 194 |
|
191 | 195 | > 缓存可以说是优化系统性能的第一手段,在各种技术中都会有缓存的应用。 |
192 | 196 | > |
193 | 197 | > 如果想深入学习缓存,建议先了解一下 [缓存基本原理](https://dunwu.github.io/design/distributed/分布式缓存.html),有助于理解缓存的特性、原理,使用缓存常见的问题及解决方案。 |
194 | 198 |
|
195 | | -- [缓存面试题](docs/05.Java中间件/02.缓存/01.缓存面试题.md) |
196 | | -- [Java 缓存框架](docs/05.Java中间件/02.缓存/02.Java缓存框架.md) |
197 | | -- [Memcached 应用指南](docs/05.Java中间件/02.缓存/03.Memcached应用指南.md) |
198 | | -- [Ehcache 应用指南](docs/05.Java中间件/02.缓存/04.Ehcache应用指南.md) |
199 | | -- [Java 缓存库](docs/05.Java中间件/02.缓存/05.Java缓存库.md) |
200 | | -- [Http 缓存](docs/05.Java中间件/02.缓存/06.Http缓存.md) |
| 199 | +- [缓存面试题](docs/14.中间件/02.缓存/01.缓存面试题.md) |
| 200 | +- [Java 缓存中间件](docs/14.中间件/02.缓存/02.Java缓存中间件.md) |
| 201 | +- [Memcached 快速入门](docs/14.中间件/02.缓存/03.Memcached.md) |
| 202 | +- [Ehcache 快速入门](docs/14.中间件/02.缓存/04.Ehcache.md) |
| 203 | +- [Java 进程内缓存](docs/14.中间件/02.缓存/05.Java进程内缓存.md) |
| 204 | +- [Http 缓存](docs/14.中间件/02.缓存/06.Http缓存.md) |
201 | 205 |
|
202 | 206 | #### 流量控制 |
203 | 207 |
|
204 | | -- [Hystrix](docs/05.Java中间件/03.流量控制/01.Hystrix.md) |
205 | | - |
206 | | -#### 微服务 |
207 | | - |
208 | | -- [Dubbo](docs/05.Java中间件/04.微服务/01.Dubbo.md) |
| 208 | +- [Hystrix](docs/14.中间件/03.流量控制/01.Hystrix.md) |
209 | 209 |
|
210 | 210 | ### [大数据](https://dunwu.github.io/bigdata-tutorial) |
211 | 211 |
|
|
0 commit comments