# javastudy **Repository Path**: PhiloKun/javastudy ## Basic Information - **Project Name**: javastudy - **Description**: Java 学习项目:笔记与示例代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-03 - **Last Updated**: 2026-09-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # javastudy > 一个面向 Java 初学者到进阶的结构化学习仓库:从基础语法、面向对象、核心 API,到并发、JVM、网络、数据库,再到设计模式与 Spring Boot 工程实践。每章配一篇万字中文笔记 + 多个**零依赖、可直接编译运行**的示例。 ## 仓库特点 - **系统性强**:20 章主线 + 1 篇 Spring Boot 工程实践附录,覆盖 Java 工程师的完整成长路径。 - **代码可运行**:全部示例仅依赖 JDK 标准库(JDBC 章需自行引入数据库驱动除外),`javac` 一键编译,85 个示例类均含 `main`。 - **原理深入**:不止「怎么写」,更讲「为什么」——字节码、内存布局、JMM、GC、类型擦除、双亲委派都有源码级分析。 - **中文友好**:笔记与代码注释全中文,对照阅读无障碍。 ## 目录结构 ```text javastudy/ ├── README.md # 项目总览与使用说明(本文件) ├── notes/ # 21 篇中文学习笔记(00 路线 + 01~20 主线 + 21 附录) ├── src/ # 可运行代码示例(包 com.javastudy.) ├── exercises/ # 算法练习题 └── scripts/ # 编译 / 运行脚本 ``` ## 环境要求 - JDK 17 或更高(推荐 JDK 21 LTS;本仓库全部示例在 **JDK 26** 下编译验证通过) - Git - 任意 Java IDE(IntelliJ IDEA / VS Code)或终端 ## 快速开始 ```bash # 1. 克隆 git clone https://github.com/PhiloKun/javastudy.git cd javastudy # 2. 一键编译全部源码到 out/ ./scripts/compile.sh # 3. 运行任意示例(默认 HelloWorld) ./scripts/run.sh com.javastudy.basics.HelloWorld ``` 也可把 `src/` 作为源码目录直接导入 IDE,运行任意带 `main` 的类。 ## 学习路线(21 篇笔记) | # | 主题 | 笔记 | | --- | --- | --- | | 00 | 学习路线与总纲 | [00-学习路线.md](notes/00-学习路线.md) | | 01 | 环境搭建与语言全景 | [01-环境搭建与语言全景.md](notes/01-环境搭建与语言全景.md) | | 02 | 基础语法与数据类型 | [02-基础语法与数据类型.md](notes/02-基础语法与数据类型.md) | | 03 | 流程控制与方法 | [03-流程控制与方法.md](notes/03-流程控制与方法.md) | | 04 | 数组与字符串 | [04-数组与字符串.md](notes/04-数组与字符串.md) | | 05 | 类与对象 | [05-类与对象.md](notes/05-类与对象.md) | | 06 | 继承、多态与接口 | [06-继承多态与接口.md](notes/06-继承多态与接口.md) | | 07 | 内部类、枚举与记录 | [07-内部类枚举与记录.md](notes/07-内部类枚举与记录.md) | | 08 | 常用类、包装类与日期时间 | [08-常用类包装类与日期时间.md](notes/08-常用类包装类与日期时间.md) | | 09 | 集合框架 | [09-集合框架.md](notes/09-集合框架.md) | | 10 | 异常处理 | [10-异常处理.md](notes/10-异常处理.md) | | 11 | 泛型 | [11-泛型.md](notes/11-泛型.md) | | 12 | IO、NIO 与序列化 | [12-IO-NIO与序列化.md](notes/12-IO-NIO与序列化.md) | | 13 | 多线程基础与线程安全 | [13-多线程基础与线程安全.md](notes/13-多线程基础与线程安全.md) | | 14 | JUC 并发工具与线程池 | [14-JUC并发工具与线程池.md](notes/14-JUC并发工具与线程池.md) | | 15 | 反射与注解 | [15-反射与注解.md](notes/15-反射与注解.md) | | 16 | 函数式编程与 Stream | [16-函数式编程与Stream.md](notes/16-函数式编程与Stream.md) | | 17 | JVM 与内存管理 | [17-JVM与内存管理.md](notes/17-JVM与内存管理.md) | | 18 | 网络编程 | [18-网络编程.md](notes/18-网络编程.md) | | 19 | 数据库与 JDBC | [19-数据库与JDBC.md](notes/19-数据库与JDBC.md) | | 20 | 设计模式 | [20-设计模式.md](notes/20-设计模式.md) | | 21 | Spring Boot 入门与工程实践(附录) | [21-SpringBoot入门与工程实践.md](notes/21-SpringBoot入门与工程实践.md) | 建议按编号顺序学习;每章笔记末尾的「对应代码」小节都给出了可直接运行的示例。 ## 代码示例一览 按主题包分组(全部位于 `src/com/javastudy/`): - **basics(基础语法 / 环境)**:HelloWorld、JvmPortabilityDemo、CommandLineDemo、VariablesAndTypes、TypeConversionDemo、OperatorsDemo、ControlFlow、MethodDemo、RecursionDemo、ArrayDemo、StringDemo、StringBuilderDemo、ArraysUtilityDemo、ScannerDemo - **oop(面向对象)**:Person、Student、ClassObjectDemo、EncapsulationDemo、InheritanceDemo、PolymorphismDemo、InterfaceDemo、AbstractClassDemo、InnerClassDemo、EnumDemo、RecordDemo、SealedDemo - **datetime(常用类 / 时间)**:WrapperClassDemo、DateTimeDemo、MathAndRandomDemo、FormatDemo - **collections(集合 / Stream)**:CollectionDemo、CollectionInternalsDemo、IteratorDemo、MapDemo、StreamDemo - **exception(异常)**:ExceptionDemo、CustomExceptionDemo、TryWithResourcesDemo - **generics(泛型)**:GenericDemo、WildcardDemo、GenericMethodDemo - **io(IO / NIO)**:IoDemo、FileDemo、NioDemo、SerializationDemo - **concurrency(并发)**:ThreadDemo、SynchronizedDemo、VolatileAndAtomicDemo、WaitNotifyDemo、DeadlockDemo、ExecutorDemo、ThreadPoolDemo、JucToolsDemo、ConcurrentCollectionDemo、CompletableFutureDemo - **jvm(JVM)**:MemoryDemo、GcDemo、ClassLoaderDemo、StringTableDemo - **network(网络)**:SocketDemo、HttpDemo、UdpDemo、UrlDemo - **jdbc(数据库)**:JdbcDemo、TransactionDemo、SimpleConnectionPool - **lambda(函数式)**:LambdaDemo、FunctionalInterfaceDemo、MethodReferenceDemo、OptionalDemo - **reflect(反射 / 注解)**:ReflectionDemo、AnnotationDemo、DynamicProxyDemo - **design(设计模式)**:SingletonDemo、FactoryDemo、StrategyDemo、ObserverDemo、BuilderDemo、TemplateMethodDemo、ProxyPatternDemo - **exercises(练习)**:TwoSum、BinarySearch、FizzBuzz、PalindromeNumber、ReverseLinkedList ## 代码规范 - 仅使用 JDK 标准库,**零第三方依赖**;JDBC 章示例需自行引入数据库驱动后运行。 - 源文件统一 UTF-8 编码,`javac -encoding UTF-8` 编译。 - 每个示例类都含 `public static void main`,输出中文且自解释,可独立运行。 - 示例自包含:不依赖网络 / 数据库 / 外部文件(网络示例走本地回环,用完即关)。 ## 提交与协作 欢迎 PR。建议按主题小步提交: ```bash git add . git commit -m "chore: 扩写集合框架章节" ``` ## 许可 本仓库内容可自由学习与引用。