diff --git a/02nio/nio01/pom.xml b/02nio/nio01/pom.xml
index e42a62f2..8752cf77 100644
--- a/02nio/nio01/pom.xml
+++ b/02nio/nio01/pom.xml
@@ -19,12 +19,12 @@
org.apache.maven.plugins
maven-compiler-plugin
+ 3.1
${maven.compile.source}
${maven.compile.target}
-
org.apache.maven.plugins
maven-shade-plugin
@@ -59,7 +59,14 @@
netty-all
4.1.51.Final
+
+ com.squareup.okhttp3
+ okhttp
+ 3.3.0
+
+
+
\ No newline at end of file
diff --git a/02nio/nio01/src/main/java/java0/nio01/netty/HttpHandler.java b/02nio/nio01/src/main/java/java0/nio01/netty/HttpHandler.java
index 81f31d2e..ab050170 100644
--- a/02nio/nio01/src/main/java/java0/nio01/netty/HttpHandler.java
+++ b/02nio/nio01/src/main/java/java0/nio01/netty/HttpHandler.java
@@ -46,7 +46,12 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) {
private void handlerTest(FullHttpRequest fullRequest, ChannelHandlerContext ctx, String body) {
FullHttpResponse response = null;
try {
- String value = body; // 对接上次作业的httpclient或者okhttp请求另一个url的响应数据
+
+ String httpResult = java0.nio01.netty.HttpUtil.get("http://localhost:8801",null);
+ String value = httpResult;
+
+
+ // 对接上次作业的httpclient或者okhttp请求另一个url的响应数据
// httpGet ... http://localhost:8801
// 返回的响应,"hello,nio";
diff --git a/02nio/nio01/src/main/java/java0/nio01/netty/HttpUtil.java b/02nio/nio01/src/main/java/java0/nio01/netty/HttpUtil.java
new file mode 100644
index 00000000..db7f9049
--- /dev/null
+++ b/02nio/nio01/src/main/java/java0/nio01/netty/HttpUtil.java
@@ -0,0 +1,32 @@
+package java0.nio01.netty;
+
+import okhttp3.*;
+
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+public class HttpUtil {
+ private static final OkHttpClient client = new OkHttpClient.Builder()
+ .connectTimeout(5, TimeUnit.SECONDS)
+ .writeTimeout(5, TimeUnit.SECONDS)
+ .readTimeout(5, TimeUnit.SECONDS)
+ .build();
+
+ public static String get(String url, Map header) {
+ Request.Builder request = new Request.Builder().url(url).get();
+ if (header != null && !header.isEmpty()) {
+ for (Map.Entry entry : header.entrySet()) {
+ request.addHeader(entry.getKey(),entry.getValue());
+ }
+ }
+ try (Response response = client.newCall(request.build()).execute()) {
+ ResponseBody res = response.body();
+ return res.string();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+}
diff --git a/02nio/nio02/pom.xml b/02nio/nio02/pom.xml
index 005de90a..c19b329c 100644
--- a/02nio/nio02/pom.xml
+++ b/02nio/nio02/pom.xml
@@ -78,6 +78,7 @@
org.springframework.boot
spring-boot-maven-plugin
+ 2.3.0.RELEASE
diff --git a/02nio/nio02/src/main/java/io/github/kimmking/gateway/filter/HeaderHttpRequestFilter.java b/02nio/nio02/src/main/java/io/github/kimmking/gateway/filter/HeaderHttpRequestFilter.java
index af5c37fb..deb7c0cb 100644
--- a/02nio/nio02/src/main/java/io/github/kimmking/gateway/filter/HeaderHttpRequestFilter.java
+++ b/02nio/nio02/src/main/java/io/github/kimmking/gateway/filter/HeaderHttpRequestFilter.java
@@ -8,5 +8,7 @@ public class HeaderHttpRequestFilter implements HttpRequestFilter {
@Override
public void filter(FullHttpRequest fullRequest, ChannelHandlerContext ctx) {
fullRequest.headers().set("mao", "soul");
+ fullRequest.headers().set("platform", "geekTimeHomework");
+
}
}
diff --git "a/02nio/\344\270\215\345\220\214 GC \345\222\214\345\240\206\345\206\205\345\255\230\347\232\204\346\200\273\347\273\223" "b/02nio/\344\270\215\345\220\214 GC \345\222\214\345\240\206\345\206\205\345\255\230\347\232\204\346\200\273\347\273\223"
new file mode 100644
index 00000000..3f011333
--- /dev/null
+++ "b/02nio/\344\270\215\345\220\214 GC \345\222\214\345\240\206\345\206\205\345\255\230\347\232\204\346\200\273\347\273\223"
@@ -0,0 +1,13 @@
+串行
+ 最简单的一种,主要是为单线程环境和较小的堆内存环境设计。
+ -XX:+UseSerialGC 配置串行 GC
+并行
+ 并行垃圾收集器适用于多核服务器,主要目标是增加吞吐量。
+ -XX:+UseParallelGC 配置并行GC
+CMS
+ CMS GC 的设计目标是避免在老年代垃圾收集时出现长时间的卡顿
+ 主要调优目标是降低 GC 停顿导致的系统延迟
+ -XX:+UseConcMarkSweepGC 配置CMS GC
+G1
+ GC 最主要的设计目标是:将 STW 停顿的时间和分布,变成 可预期且可配置的。
+ -XX:+UseG1GC 配置G1 GC
diff --git a/03concurrency/0301/src/main/java/java0/conc0303/homework03/Homework1.java b/03concurrency/0301/src/main/java/java0/conc0303/homework03/Homework1.java
new file mode 100644
index 00000000..bb28b295
--- /dev/null
+++ b/03concurrency/0301/src/main/java/java0/conc0303/homework03/Homework1.java
@@ -0,0 +1,28 @@
+package java0.conc0303.homework03;
+
+
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.FutureTask;
+
+public class Homework1 {
+
+ public static void main(String[] args) throws InterruptedException, ExecutionException {
+ long start = System.currentTimeMillis();
+
+
+ FutureTask task = new FutureTask<>(() -> sum());
+ new Thread(task).start();
+ System.out.println(Thread.currentThread().getName() + "异步计算的结果为:" + task.get());
+ System.out.println(Thread.currentThread().getName() + "使用时间:" + (System.currentTimeMillis() - start) + " ms");
+ }
+
+ private static int sum() {
+ return fibo(36);
+ }
+
+ private static int fibo(int a) {
+ if (a < 2)
+ return 1;
+ return fibo(a - 1) + fibo(a - 2);
+ }
+}
diff --git a/sql b/sql
new file mode 100644
index 00000000..417f9474
--- /dev/null
+++ b/sql
@@ -0,0 +1,44 @@
+CREATE TABLE `t_order` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `order_no` varchar(40) NOT NULL COMMENT '订单号',
+ `product_id` int(11) NOT NULL COMMENT '产品id',
+ `product_name` varchar(255) DEFAULT NULL COMMENT '产品名',
+ `price` decimal(10,2) DEFAULT NULL COMMENT '价格',
+ `username` varchar(64) DEFAULT NULL COMMENT '用户名',
+ `mobile` varchar(64) DEFAULT NULL COMMENT '手机号',
+ `pay_time` datetime DEFAULT NULL COMMENT '支付时间',
+ `create_time` timestamp(3) NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
+ `update_time` timestamp(3) NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `idx_order_no` (`order_no`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单表’;
+
+CREATE TABLE `t_product` (
+ `product_no` varchar(64) NOT NULL DEFAULT '0' COMMENT '商品编号',
+ `name` varchar(512) DEFAULT NULL COMMENT '商品名称',
+ `bref` varchar(2048) DEFAULT NULL COMMENT '简介',
+ `detail` varchar(2048) DEFAULT NULL COMMENT '商品详情',
+ `cover_image` varchar(512) DEFAULT NULL COMMENT '封面图',
+ `list_image` varchar(512) DEFAULT NULL COMMENT '列表图',
+ `price` double(11,2) DEFAULT NULL COMMENT '价格',
+ `status` int(11) DEFAULT NULL COMMENT '0:下架 1:上架',
+ `create_time` timestamp(3) NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
+ `update_time` timestamp(3) NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
+ PRIMARY KEY (`courseNo`) USING BTREE,
+ KEY `idx_product_no` (`courseNo`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品’;
+
+CREATE TABLE `t_user` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `username` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '用户名',
+ `head_image` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '头像',
+ `gender` int(11) DEFAULT '1' COMMENT '性别',
+ `email` varchar(40) COLLATE utf8_bin DEFAULT NULL,
+ `country` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT '国家',
+ `province` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT '省',
+ `city` varchar(64) COLLATE utf8_bin DEFAULT NULL COMMENT '市',
+ `create_time` timestamp(3) NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
+ `update_time` timestamp(3) NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
+ `phone` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '手机号',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='用户表';