# Java训练营代码 **Repository Path**: sssty/java_geektime ## Basic Information - **Project Name**: Java训练营代码 - **Description**: Java训练营代码 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 8 - **Created**: 2021-12-31 - **Last Updated**: 2022-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java训练营代码 ## Maven 编译和运行 * 安装 JDK 8以上 * 安装 Apache Maven 3.6 以上 * 项目使用 `mvn compile` 编译 * 使用 `mvn exec:java -Dexec.mainClass="geektime.nio.CharSetDemo"` 执行测试 * `Dexec.args='XXX'` 提供运行参数 ## 介绍 极客时间Java提薪营 ### 并发 1. Java并发和多线程 2. 并发集合 3. 线程并发竞赛 - 程序中用单线程完成了生成随机数成绩、和排序取前十名,这样的业务 - 另外简单实现了使用多个线程并发生成随机数成绩(采用加锁),并使用多个线程进行排序计算(采用线程安全集合) - 希望重新设计程序,运用高效能集合和算法,更快的处理业务逻辑 ### NIO 1. Java NIO 2. Netty 3. Java NIO.2 ### JDK 1. JMX 获取系统信息 2. 自带国密算法的JRE (JDK17分支) 3. 加解密例子 4. 工具类处理例子 ### JVM 1. 查看默认的 GC 2. ASM 遍历类,修改私有方法为公开方法 3. Cglib,加强抽象类和方法 ### IoC 1. Guice 示例 2. starter 开发一个Spring Boot Starter 3. quarkus 示例 (JDK17分支) ### 第一次作业提交 1. 修改了线程池的初始化逻辑,控制了核心线程数和最大线程数,并且使用了有界队列。 ~~使用了*guava*的线程工厂类,方便监控,不过并没有打印相关线程和方法~~。使用了*CallerRunsPolicy*策略,当线程池满使用当前调用线程调度任务。 2. 修改了时间工具类,采用*stopwatch*秒表统计时间,减少调用系统时钟方法的工作区切换。 3. 按照要求修改了*SimplePolicy*方法, 计算结果对比值在20倍左右浮动。