File tree Expand file tree Collapse file tree 3 files changed +124
-0
lines changed Expand file tree Collapse file tree 3 files changed +124
-0
lines changed Original file line number Diff line number Diff line change
1
+ # 第1周作业
2
+
3
+
4
+ 参见 我的教室 -> 本周作业
5
+
6
+ ## 作业内容
7
+
8
+
9
+ > Week01 作业题目(周四):
10
+
11
+ 1.(选做)自己写一个简单的 Hello.java,里面需要涉及基本类型,四则运行,if 和 for,然后自己分析一下对应的字节码,有问题群里讨论。
12
+
13
+ 2.(必做)自定义一个 Classloader,加载一个 Hello.xlass 文件,执行 hello 方法,此文件内容是一个 Hello.class 文件所有字节(x=255-x)处理后的文件。文件群里提供。
14
+
15
+ 3.(必做)画一张图,展示 Xmx、Xms、Xmn、Meta、DirectMemory、Xss 这些内存参数的关系。
16
+
17
+ 4.(选做)检查一下自己维护的业务系统的 JVM 参数配置,用 jstat 和 jstack、jmap 查看一下详情,并且自己独立分析一下大概情况,思考有没有不合理的地方,如何改进。
18
+
19
+ 注意:如果没有线上系统,可以自己 run 一个 web/java 项目。
20
+
21
+ > Week01 作业题目(周六):
22
+
23
+ 1.(选做)本机使用 G1 GC 启动一个程序,仿照课上案例分析一下 JVM 情况。
24
+
25
+
26
+ ## 操作步骤
27
+
28
+
29
+ ### 作业2
30
+
31
+ 1 . 打开 Spring 官网: https://spring.io/
32
+ 2 . 找到 Projects --> Spring Initializr: https://start.spring.io/
33
+ 3 . 填写项目信息, 生成 maven 项目; 下载并解压。
34
+ 4 . Idea或者Eclipse从已有的Source导入Maven项目。
35
+ 5 . 增加课程资源 Hello.xlass 文件到 src/main/resources 目录。
36
+ 6 . 编写代码,实现 findClass 方法,解码方法
37
+ 7 . 编写main方法,调用 loadClass 方法;
38
+ 8 . 创建实例,以及调用方法
39
+ 9 . 执行.
40
+
41
+ 具体的参见: [ https://github.com/renfufei/JAVA-000/blob/main/Week_01/homework01/src/main/java/com/renfufei/homework01/XlassLoader.java ] ( XlassLoader.java )
Original file line number Diff line number Diff line change
1
+ # 第2周作业
2
+
3
+
4
+ ## 作业内容
5
+
6
+ > Week02 作业题目(周四):
7
+
8
+ 1.使用 GCLogAnalysis.java 自己演练一遍串行 / 并行 /CMS/G1 的案例。
9
+ 2.使用压测工具(wrk 或 sb),演练 gateway-server-0.0.1-SNAPSHOT.jar 示例。
10
+ 3.(选做) 如果自己本地有可以运行的项目,可以按照 2 的方式进行演练。
11
+ 4.(必做) 根据上述自己对于 1 和 2 的演示,写一段对于不同 GC 的总结,提交到 Github。
12
+
13
+ > Week02 作业题目(周六):
14
+
15
+ 1.(选做)运行课上的例子,以及 Netty 的例子,分析相关现象。
16
+
17
+ 2.(必做)写一段代码,使用 HttpClient 或 OkHttp 访问 http://localhost:8801 ,代码提交到 Github。
18
+
19
+
20
+ ## 操作步骤
21
+
22
+
23
+ ### 第二周-周六-作业2
24
+
25
+ 1 . 打开 Spring 官网: https://spring.io/
26
+ 2 . 找到 Projects --> Spring Initializr: https://start.spring.io/
27
+ 3 . 填写项目信息, 生成 maven 项目; 下载并解压。
28
+ 4 . Idea或者Eclipse从已有的Source导入Maven项目。
29
+ 5 . 搜索依赖, 推荐 mvnrepository: https://mvnrepository.com/
30
+ 6 . 搜索 OkHttp 或者 HttpClient,然后在 pom.xml 之中增加对应的依赖。
31
+ 7 . 使用OkHttp
32
+ - 7.1 查找OkHttp官网: https://square.github.io/okhttp/
33
+ - 7.2 参照官方示例编写代码: [ OkHttpUtils.java] ( https://github.com/renfufei/JAVA-000/blob/main/Week_02/homework02/src/main/java/com/renfufei/homework02/OkHttpUtils.java )
34
+ 8 . 使用HttpClient
35
+ - 8.1 查找官网: http://hc.apache.org/
36
+ - 8.2 参照官方示例编写代码: [ HttpClientHelper.java] ( https://github.com/renfufei/JAVA-000/blob/main/Week_02/homework02/src/main/java/com/renfufei/homework02/HttpClientHelper.java )
37
+ - 8.3 执行如果报错, 根据提示,增加 commons-logging 或者其他日志依赖。
38
+ 9 . 执行与测试.
Original file line number Diff line number Diff line change
1
+ # 第3周作业
2
+
3
+
4
+ ## 作业内容
5
+
6
+ Week03 作业题目(周四):
7
+
8
+ 基础代码可以 fork: https://github.com/JavaCourse00/JavaCourseCodes
9
+
10
+ 02nio/nio02 文件夹下
11
+
12
+ 实现以后,代码提交到 Github。
13
+
14
+ 1.(必做)整合你上次作业的 httpclient/okhttp;
15
+
16
+ 2.(选做)使用 netty 实现后端 http 访问(代替上一步骤)
17
+
18
+ Week03 作业题目(周六):
19
+
20
+ 1.(必做)实现过滤器。
21
+ 2.(选做)实现路由。
22
+
23
+ 作业提交规范:
24
+
25
+ 1 . 作业不要打包 ;
26
+ 2 . 同学们写在 md 文件里,而不要发 Word, Excel , PDF 等 ;
27
+ 3 . 代码类作业需提交完整 Java 代码,不能是片段;
28
+ 4 . 作业按课时分目录,仅上传作业相关,笔记分开记录;
29
+ 5 . 画图类作业提交可直接打开的图片或 md,手画的图手机拍照上传后太大,难以查看,推荐画图(推荐 PPT、Keynote);
30
+ 6 . 提交记录最好要标明明确的含义(比如第几题作业)。
31
+
32
+ ## 操作步骤
33
+
34
+ ### 1.(必做)整合你上次作业的 httpclient/okhttp
35
+
36
+ 1 . 下载老师的项目: https://github.com/JavaCourse00/JavaCourseCodes
37
+ 2 . 解压, 拷贝其中 ` 02nio ` 路径下的 ` nio02 ` 目录到第三周的作业目录下。
38
+ 3 . Idea或者Eclipse打开这个Maven项目。
39
+ 4 . 增加自己的包名, 以做标识。
40
+ 5 . 将第二周的作业代码整合进来: [ homework02] ( ../Week_02/homework02/ ) 中的代码和pom.xml依赖。
41
+ 6 . 将 nio01 中的 HttpServer03 代码整合进来作为后端服务,改名为 [ BackendServer] ( https://github.com/renfufei/JAVA-000/blob/main/Week_03/nio02/src/main/java/com/renfufei/homework03/BackendServer.java ) , 监听 8088 端口。
42
+ 7 . 找到Netty官网: https://netty.io/wiki/user-guide-for-4.x.html
43
+ 8 . 参照官方示例, 编写自己的过滤器 [ ProxyBizFilter] ( https://github.com/renfufei/JAVA-000/blob/main/Week_03/nio02/src/main/java/com/renfufei/homework03/ProxyBizFilter.java ) ,
44
+ 9 可以加入到 [ https://github.com/renfufei/JAVA-000/blob/main/Week_03/nio02/src/main/java/io/github/kimmking/gateway/inbound/HttpInboundHandler.java ] ( HttpInboundHandler.java ) ; 【实际上应该加入到 [ HttpInboundInitializer] ( ./nio02/src/main/java/io/github/kimmking/gateway/inbound/HttpInboundInitializer.java ) 的初始化方法中】。
45
+ 10 . 修改 [ HttpOutboundHandler] ( https://github.com/renfufei/JAVA-000/blob/main/Week_03/nio02/src/main/java/io/github/kimmking/gateway/outbound/httpclient4/HttpOutboundHandler.java ) 类,集成自己写的第二周的作业代码;
You can’t perform that action at this time.
0 commit comments