|
1 | 1 | #JavaTutorial(Java教程) |
2 | 2 | 在成长的过程中,会学到许多新的知识;在项目实践过程中,经常需要学习新的技术。但经过一段时间后,这些知识点和技术又忘得差不多了,等到要用的时候又要搜索很多的资料从头到尾学习一次,浪费很多的时间,没有沉淀和积累。 |
3 | 3 |
|
4 | | -在这里,通过文章和代码,把这些知识点和技术的主要内容记录并汇总,供自己快速回顾,也分享给他人。涉及的内容有: |
5 | | -* Java基础 |
6 | | -* Java中级 |
7 | | -* Java高级 |
8 | | -* Java企业开发 |
| 4 | +在这里,通过文章和代码,把这些知识点和技术的主要内容记录并汇总,供自己快速回顾,也分享给他人。 |
9 | 5 |
|
10 | | -#Java基础 |
11 | | -##数据结构 |
12 | | - |
13 | | -##数据库 |
14 | | -###代码 |
15 | | -* [Apache DbUtils - JDBC Utility Component](src/cn/aofeng/demo/dbutils) |
| 6 | +## 数据结构 |
| 7 | +* [在控制台输出类似目录树的结构](src/cn/aofeng/demo/tree) |
16 | 8 |
|
17 | | -##Redis |
18 | | -###代码 |
19 | | -* [Redis客户端Jedis使用示例](src/cn/aofeng/demo/redis/JedisDemo.java) |
| 9 | +## 定时器 |
| 10 | +* [Timer](src/cn/aofeng/demo/java/util/timer/TimerDemo.java) |
| 11 | +* [ScheduledExecutorService](src/cn/aofeng/demo/java/util/concurret/ScheduledExecutorServiceDemo.java) |
20 | 12 |
|
| 13 | +## 数据库 |
| 14 | +* [Apache DbUtils - JDBC Utility Component](src/cn/aofeng/demo/dbutils) |
| 15 | +* [JDBC元数据使用示例](src/cn/aofeng/demo/jdbc/MetaDataExample.java) |
21 | 16 |
|
22 | | -#Java中级 |
23 | | -##反射 |
24 | | -###代码 |
25 | | -* [获取构造方法、普通方法、字段和注解](src/cn/aofeng/demo/java/lang/reflect/ClassAnalyze.java) |
26 | | -* [使用构造方法创建对象实例](src/cn/aofeng/demo/java/lang/reflect/CreateInstance.java) |
27 | | -* [调用方法](src/cn/aofeng/demo/java/lang/reflect/InvokeMethod.java) |
28 | | -* [获取/设置字段值](src/cn/aofeng/demo/java/lang/reflect/InvokeField.java) |
| 17 | +## XML |
| 18 | +* [XPath](src/cn/aofeng/demo/xml/XPathDemo.java) |
29 | 19 |
|
30 | | -##序列化与反序列化 |
31 | | -###Json |
32 | | -####Gson |
33 | | -#####代码 |
| 20 | +## 序列化与反序列化 |
| 21 | +### Gson |
34 | 22 | * [普通对象-序列化与反序列化](src/cn/aofeng/demo/json/gson/SimpleObjectSerialize.java) |
35 | 23 | * [数组-序列化](src/cn/aofeng/demo/json/gson/ArraySerialize.java) |
36 | 24 | * [数组-反序列化](src/cn/aofeng/demo/json/gson/ArrayDeserialize.java) |
37 | 25 | * [集合-序列化](src/cn/aofeng/demo/json/gson/CollectionsSerialize.java) |
38 | 26 | * [集合-反序列化](src/cn/aofeng/demo/json/gson/CollectionDeserialize.java) |
39 | 27 | * [自定义序列化](src/cn/aofeng/demo/json/gson/CustomSerialize.java) |
40 | 28 | * [自定义反序列化](src/cn/aofeng/demo/json/gson/CustomDeserialize.java) |
41 | | - |
42 | | -#####文章 |
43 | 29 | * [Gson教程-序列化与反序列化基础操作](http://aofengblog.com/2015/08/12/Gson-%E5%BA%8F%E5%88%97%E5%8C%96%E4%B8%8E%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%9F%BA%E7%A1%80%E6%93%8D%E4%BD%9C/) |
44 | 30 | * [Gson教程-自定义序列化](http://aofengblog.com/2015/08/14/Gson-%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BA%8F%E5%88%97%E5%8C%96/) |
45 | 31 | * [Gson教程-自定义反序列化](http://aofengblog.com/2015/08/17/Gson-%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96/) |
46 | 32 |
|
47 | | -## 数据结构 |
48 | | -### 代码 |
49 | | -* [在控制台输出类似目录树的结构](src/cn/aofeng/demo/tree) |
50 | | - |
51 | | -##定时器 |
52 | | -###代码 |
53 | | -* [Timer](src/cn/aofeng/demo/java/util/timer/TimerDemo.java) |
54 | | -* [ScheduledExecutorService](src/cn/aofeng/demo/java/util/concurret/ScheduledExecutorServiceDemo.java) |
55 | | - |
56 | | -##设计模式 |
57 | | -###代码 |
58 | | -* [事件驱动](src/cn/aofeng/demo/eventdriver_normal) |
59 | | -* [事件驱动改进版](src/cn/aofeng/demo/eventdriver_improve) |
60 | | -* [Reactor](src/cn/aofeng/demo/reactor) |
61 | | - |
62 | | -##单元测试 |
63 | | -###文章 |
| 33 | +## 单元测试 |
64 | 34 | * [单元测试 - JUnit+Ant自动化执行单元测试并生成报告 | How to Automated Unit Testing with JUnit and Ant](http://aofengblog.com/2013/02/27/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95-JUnit-Ant%E8%87%AA%E5%8A%A8%E5%8C%96%E6%89%A7%E8%A1%8C%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E5%B9%B6%E7%94%9F%E6%88%90%E6%8A%A5%E5%91%8A/) |
65 | 35 | * [单元测试 - JUnit+Ant+Cobertura生成单元测试代码覆盖率 | How to Generate Code Coverage Report With Junit And Cobertura](http://aofengblog.com/2013/02/27/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95-JUnit-Ant-Cobertura%E7%94%9F%E6%88%90%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%BB%A3%E7%A0%81%E8%A6%86%E7%9B%96%E7%8E%87/) |
66 | 36 | * [使用Jetty实现Http Server Mock作单元测试](src/cn/aofeng/demo/jetty) |
| 37 | + |
| 38 | +### EasyMock |
| 39 | +* [使用EasyMock作单元测试](src/cn/aofeng/demo/easymock) |
| 40 | + |
| 41 | +### WireMock |
67 | 42 | * [使用WireMock实现Http Server Mock作单元测试](src/cn/aofeng/demo/wiremock) |
| 43 | + |
| 44 | +### Mockito |
68 | 45 | * [使用Mockito作单元测试](src/cn/aofeng/demo/mockito) |
69 | 46 |
|
70 | | -##其他 |
71 | | -###代码 |
72 | | -* [获取主机信息](src/cn/aofeng/demo/misc/GetHostInfo.java) |
73 | 47 |
|
74 | | -#Java高级 |
75 | | -##网络与I/O |
76 | | -###代码 |
| 48 | +## 网络与I/O |
77 | 49 | * [多线程网络echo服务](src/cn/aofeng/demo/io/MultiThreadEchoServer.java) |
78 | 50 | * [线程池网络echo服务](src/cn/aofeng/demo/io/ThreadPoolEchoServer.java) |
79 | 51 | * [NIO 缓冲区](src/cn/aofeng/demo/nio/BufferIO.java) |
80 | 52 | * [NIO 内存映射](src/cn/aofeng/demo/nio/MemoryMapper.java) |
81 | 53 | * [NioEchoServer](src/cn/aofeng/demo/nio/NioEchoServer.java) |
82 | | - |
83 | | -####Netty 4.0.x |
84 | | -* [EchoServer](src/cn/aofeng/demo/netty40x/echo/EchoServer.java) |
85 | | -* [EchoClient](src/cn/aofeng/demo/netty40x/echo/EchoClient.java) |
86 | | - |
87 | | -###文章 |
88 | 54 | * [NIO - 入门篇](http://aofengblog.com/2008/10/21/Java-NIO%E5%85%A5%E9%97%A8%E7%AF%87/) |
89 | 55 | * [NIO - 文件锁](http://aofengblog.com/2008/10/27/Java-NIO%E6%96%87%E4%BB%B6%E9%94%81/) |
90 | 56 | * [缓冲区操作和内存映射](http://aofengblog.com/2013/09/29/Java-%E7%BC%93%E5%86%B2%E5%8C%BA%E6%93%8D%E4%BD%9C%E5%92%8C%E5%86%85%E5%AD%98%E6%98%A0%E5%B0%84/) |
91 | 57 | * [Java网络处理模型-阻塞I/O+多线程](http://aofengblog.com/2013/10/22/Java%E7%BD%91%E7%BB%9C%E5%A4%84%E7%90%86%E6%A8%A1%E5%9E%8B-%E9%98%BB%E5%A1%9EI-O-%E5%A4%9A%E7%BA%BF%E7%A8%8B/) |
92 | 58 | * [Java网络处理模型-阻塞I/O+线程池](http://aofengblog.com/2013/10/24/Java%E7%BD%91%E7%BB%9C%E5%A4%84%E7%90%86%E6%A8%A1%E5%9E%8B-%E9%98%BB%E5%A1%9EI-O-%E7%BA%BF%E7%A8%8B%E6%B1%A0/) |
93 | 59 | * [Reactor模式与非阻塞I/O | Reactor Pattern and NIO](http://aofengblog.com/2013/11/04/Reactor%E6%A8%A1%E5%BC%8F%E4%B8%8E%E9%9D%9E%E9%98%BB%E5%A1%9EI-O/) |
94 | 60 |
|
95 | | -##线程与并发 |
96 | | -###代码 |
| 61 | +### Netty 4.0.x |
| 62 | +* [EchoServer](src/cn/aofeng/demo/netty40x/echo/EchoServer.java) |
| 63 | +* [EchoClient](src/cn/aofeng/demo/netty40x/echo/EchoClient.java) |
| 64 | + |
| 65 | + |
| 66 | +## 线程与并发 |
97 | 67 | * [fork/join](src/cn/aofeng/demo/java/util/forkjoin/HelloForkJoin.java) |
98 | 68 | * [Future](src/cn/aofeng/demo/java/util/future/HelloFuture.java) |
99 | 69 | * [Future接口关系图](src/cn/aofeng/demo/java/util/future/Future.ucls) |
100 | | - |
101 | | -###文章 |
102 | 70 | * [Servlet的线程安全问题](http://aofengblog.com/2008/11/16/Servlet%E7%9A%84%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E9%97%AE%E9%A2%98/) |
103 | 71 | * [多线程池执行异步任务](http://aofengblog.com/2014/03/31/%E5%A4%9A%E7%BA%BF%E7%A8%8B%E6%B1%A0%E6%89%A7%E8%A1%8C%E5%BC%82%E6%AD%A5%E4%BB%BB%E5%8A%A1/) |
104 | 72 | * [事件驱动的异步化框架:event4j](http://aofengblog.blog.163.com/blog/static/63170212014102463624267/) |
105 | 73 | * [JDK HashMap源码分析 | HashMap Source Code Analysis](http://aofengblog.com/2014/08/14/JDK-HashMap%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/) |
106 | 74 |
|
| 75 | +##反射 |
| 76 | +* [获取构造方法、普通方法、字段和注解](src/cn/aofeng/demo/java/lang/reflect/ClassAnalyze.java) |
| 77 | +* [使用构造方法创建对象实例](src/cn/aofeng/demo/java/lang/reflect/CreateInstance.java) |
| 78 | +* [调用方法](src/cn/aofeng/demo/java/lang/reflect/InvokeMethod.java) |
| 79 | +* [获取/设置字段值](src/cn/aofeng/demo/java/lang/reflect/InvokeField.java) |
| 80 | + |
107 | 81 | ## 脚本语言 |
108 | | -###代码 |
109 | 82 | * [在Java中执行JavaScript脚本](src/cn/aofeng/demo/script/ScriptRunPerformence.java) |
110 | 83 | * [多个脚本引擎执行JavaScript的性能比较](src/cn/aofeng/demo/script/MultiScriptEngineCompare.java) |
111 | | - |
112 | | -###文章 |
113 | 84 | * [在JVM中编译脚本提升运行性能](http://aofengblog.com/2013/12/12/%E5%9C%A8JVM%E4%B8%AD%E7%BC%96%E8%AF%91%E8%84%9A%E6%9C%AC%E6%8F%90%E5%8D%87%E6%80%A7%E8%83%BD/) |
114 | 85 |
|
115 | | -##加密解密 |
116 | | -###代码 |
| 86 | +## 加密解密 |
117 | 87 | * [Blowfish加密与解密](src/cn/aofeng/demo/encrypt/Blowfish.java) |
118 | 88 | * [AES加密与解密](src/cn/aofeng/demo/encrypt/AES.java) |
119 | 89 | * [Blowfish, AES性能比较](src/cn/aofeng/demo/encrypt/PerformanceCompare.java) |
120 | 90 | * [HMAC-SHA1签名算法](src/cn/aofeng/demo/encrypt/HmacSha1.java) |
121 | 91 |
|
122 | | -#Java企业开发 |
123 | | -##开源框架 |
124 | | -###文章 |
| 92 | +## 开源组件 |
| 93 | +### Redis |
| 94 | +* [Redis客户端Jedis使用示例](src/cn/aofeng/demo/redis/JedisDemo.java) |
| 95 | + |
| 96 | +### SSH |
125 | 97 | * [Struts2 - 支持JSON / Using json in struts2](http://aofengblog.com/2010/08/23/Struts2-%E6%94%AF%E6%8C%81JSON/) |
126 | 98 | * [Struts2 - Unable to load configuration. - bean 错误解决](http://aofengblog.blog.163.com/blog/static/631702120103184042768/) |
127 | 99 | * [Spring IBatis Struts2 集成之一:Spring与IBatis集成 | Spring IBatis Struts2 Integration I: Spring Integrates with IBatis](http://aofengblog.com/2011/03/19/Spring-IBatis-Struts2-%E9%9B%86%E6%88%90%E4%B9%8B%E4%B8%80%EF%BC%9ASpring%E4%B8%8EIBatis%E9%9B%86%E6%88%90/) |
128 | 100 | * [Spring IBatis Struts2 集成之二:Spring与Struts2集成 | Spring IBatis Struts2 Integration II: Spring Integrates with Struts2](http://aofengblog.com/2011/03/22/Spring-IBatis-Struts2-%E9%9B%86%E6%88%90%E4%B9%8B%E4%BA%8C%EF%BC%9ASpring%E4%B8%8EStruts2%E9%9B%86%E6%88%90/) |
129 | 101 |
|
130 | | -## JDBC |
131 | | -### 代码 |
132 | | -* [JDBC元数据使用示例](src/cn/aofeng/demo/jdbc/MetaDataExample.java) |
| 102 | +### Tomcat |
| 103 | +* [JMX管理Tomcat/Resin](http://aofengblog.blog.163.com/blog/static/6317021200871711013857/) |
133 | 104 |
|
134 | | -##XML |
135 | | -###代码 |
136 | | -* [XPath](src/cn/aofeng/demo/xml/XPathDemo.java) |
| 105 | +### JBoss |
| 106 | +* [JBoss5.1.0 GA - 部署项目类库兼容和类库冲突问题解决方法](http://aofengblog.blog.163.com/blog/static/631702120113674626533/) |
137 | 107 |
|
138 | 108 | ## EJB |
139 | | -###文章 |
140 | 109 | * [EJB3 - 使用Eclipse和JBoss开发和部署Session Bean | How to create Session Bean using JBoss and Eclipse](http://aofengblog.com/2011/03/14/EJB3-%E4%BD%BF%E7%94%A8Eclipse%E5%92%8CJBoss%E5%BC%80%E5%8F%91%E5%92%8C%E9%83%A8%E7%BD%B2Session-Bean/) |
141 | 110 | * [EJB3 - 使用Eclipse和JBoss开发和部署Entity Bean | How to create Entity Bean using JBoss and Eclipse](http://aofengblog.com/2011/03/14/EJB3-%E4%BD%BF%E7%94%A8Eclipse%E5%92%8CJBoss%E5%BC%80%E5%8F%91%E5%92%8C%E9%83%A8%E7%BD%B2Entity-Bean/) |
142 | 111 |
|
143 | | -##Tomcat |
144 | | -###文章 |
145 | | -* [JMX管理Tomcat/Resin](http://aofengblog.blog.163.com/blog/static/6317021200871711013857/) |
146 | | - |
147 | | -##JBoss |
148 | | -###文章 |
149 | | -* [JBoss5.1.0 GA - 部署项目类库兼容和类库冲突问题解决方法](http://aofengblog.blog.163.com/blog/static/631702120113674626533/) |
150 | | - |
| 112 | +## 设计模式 |
| 113 | +* [事件驱动](src/cn/aofeng/demo/eventdriver_normal) |
| 114 | +* [事件驱动改进版](src/cn/aofeng/demo/eventdriver_improve) |
| 115 | +* [Reactor](src/cn/aofeng/demo/reactor) |
151 | 116 |
|
152 | | -#Java工具 |
153 | | -##文章 |
| 117 | +## Java工具 |
154 | 118 | * [在Linux上安装JDK](http://aofengblog.com/2008/11/17/%E5%9C%A8Linux%E4%B8%8A%E5%AE%89%E8%A3%85JDK/) |
155 | 119 | * [在Linux上安装Ant](http://aofengblog.blog.163.com/blog/static/631702120081017113327582/) |
156 | 120 | * [Java程序以后台方式在Linux上运行](http://aofengblog.blog.163.com/blog/static/631702120081014104934762/) |
157 | 121 | * [Java使用SSH从远程服务器下载文件](http://aofengblog.blog.163.com/blog/static/6317021201362975846986/) |
158 | 122 | * [Java实现在控制终端显示的字符进度条](http://aofengblog.com/2013/07/27/Java-%E5%AE%9E%E7%8E%B0%E5%9C%A8%E6%8E%A7%E5%88%B6%E7%BB%88%E7%AB%AF%E6%98%BE%E7%A4%BA%E7%9A%84%E5%AD%97%E7%AC%A6%E8%BF%9B%E5%BA%A6%E6%9D%A1/) |
159 | 123 | * [VisualGC+Jstatd实时监控远程JVM](http://aofengblog.com/2013/06/29/Java-VisualGC-Jstatd%E5%AE%9E%E6%97%B6%E7%9B%91%E6%8E%A7%E8%BF%9C%E7%A8%8BJVM/) |
| 124 | +* [获取主机信息](src/cn/aofeng/demo/misc/GetHostInfo.java) |
| 125 | + |
0 commit comments