JavaIO、多线程与反射.md 4.6 KB


title: JavaIO、多线程与反射 tags:

  • module
  • java
  • io
  • concurrency
  • reflection
  • joplin type: module source_type: reconstructed created: 2026-04-22 updated: 2026-04-22 ---

JavaIO、多线程与反射

[!abstract] 这一模块处理 Java 中最容易从“语法学习”进入“系统编程”的部分。文件读写、线程并发、网络通信、反射机制都在这里汇合。

模块结论

  • [[JavaIO]] 负责数据与外部设备之间的输入输出。
  • [[Java多线程]] 负责并发执行路径的组织与协调。
  • [[Java反射]] 提供运行期动态获取类信息和调用能力,是很多框架机制的基础。
  • 日志、类加载器、XML、单元测试、注解这些内容虽然分散,但共同构成了 Java 从基础语法走向工程化框架前的重要过渡层。

一、异常与 File

  • 异常是程序运行中出现的可预期或不可预期错误机制。
  • File 负责文件和路径层面的抽象,不等于真正读写内容。
  • 先理解异常体系,再理解 IO 代码中的 throws / try-catch 更顺。

二、IO 流

  • 按方向分输入流、输出流。
  • 按处理单位分字节流、字符流。
  • 字节流适合通用二进制数据,字符流更贴近文本处理。

复习重点

  • IO 操作最终都是在做数据搬运。
  • 关闭流、刷新流、缓冲流的作用要区分清楚。

三、多线程

  • 线程是进程中的执行路径。
  • 常见创建方式包括继承 Thread、实现 Runnable、实现 Callable。
  • 并发与并行的区别要明确。

为什么线程难

  • 不是启动线程难,而是多个线程同时访问共享资源后,时序问题变复杂。
  • 所以重点不只是 API,而是执行模型和协作关系。

四、网络编程与案例

  • 本质上是基于网络协议进行数据发送与接收。
  • Java 基础阶段通常从 Socket 通信开始理解。
  • 聊天室案例的价值在于把 Socket、线程和消息收发组织到同一个场景里。

五、反射、注解与类加载

  • 反射允许在运行时获取类、构造器、字段和方法信息。
  • 动态代理通过代理对象扩展调用过程。
  • 注解提供声明式元数据,类加载器决定类在 JVM 中如何被装入。
  • 这几者共同构成理解框架底层行为的重要入口。

六、日志、XML 与单元测试

  • 日志用于替代随手 println,让程序运行信息更可追踪。
  • XML 是很多配置与数据交换场景里的传统载体。
  • 单元测试强调对最小可验证单元进行自动化验证,是工程质量基础。

七、易错点

  • File 不负责读取文件内容,只负责文件对象层面的操作。
  • IO 的“输入输出”是以程序内存为参照,不是以用户视角为参照。
  • run()start() 不能混为一谈。
  • 反射强大,但会带来运行时复杂性和一定性能成本。

八、复习提问

  • 字节流和字符流的本质区别是什么?
  • Java 中三种常见线程创建方式分别适合什么场景?
  • 聊天室案例为什么能同时暴露网络编程和并发协作问题?
  • 为什么说反射是很多框架的底层基础?

来源

  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/26.IO(异常&File&综合案例).md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/27.IO流(字节流&字符流).md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/28.IO流(其他流).md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/29.多线程01.md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/30.多线程02.md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/30.多线程02(额外扩展).md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/31.网络编程.md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/31.网络编程(控制台版聊天室).md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/32.反射&动态代理.md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/33.log日志.md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/34.类加载器.md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/35.xml.md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/36.单元测试.md]]
  • [[raw/Joplin/编程学习项目/Java学习笔记/Java基础--下部/37.注解.md]]

相关页面

  • [[Java]]
  • [[Java核心API与集合]]
  • [[Java异常]]
  • [[JavaIO]]
  • [[Java多线程]]
  • [[Java反射]]
  • [[JavaWeb与SpringBoot]]