javaIO的AIO 一、AIO 基础定义 全称:Asynchronous IO 异步非阻塞 IO JDK7 正式引入,也叫 NIO.2 核心:交给操作系统全权做 IO,做完主动回调通知程序 二、三种 IO 模型 核心本质(一句话区分) BIO 同步阻塞 我去取快递,站门口死等,不取完不能干别的。 NIO 同步非阻塞(多路复用) 每隔一会去门口看一眼:快递到没到,没到就先干别的。 (需要线程主动轮询 / 2026-04-20 java的IO #java
javaIO的BIO 一、BIO 整体认知BIO:同步阻塞 IO 线程发起读写请求后,会一直阻塞等待,直到读写完成 流是单向:输入只能读、输出只能写 两大顶层抽象父类(固定记) 字节流(一切文件通用):InputStream / OutputStream 字符流(仅文本):Reader / Writer 一、字节流(万能流)1. 基础文件字节流核心类 FileInputStream:文件读 2026-04-20 java的IO #java
javaIO的NIO 一、NIO 整体定位 NIO:New IO / Non-blocking IO,JDK1.4 推出 模式:同步非阻塞 BIO:面向流、单向、阻塞、一连接一线程 NIO:面向缓冲区 + 通道、双向、非阻塞、单线程管理多连接 核心价值:高并发、低线程开销,Netty 底层完全基于 NIO 改造 二、NIO 三大核心组件(必背) Buffer 缓冲区 数据读写容器,所有数据都先存入 Buf 2026-04-20 java的IO #java
javaIO的基础认知 路线第一阶段:Java IO 基础认知1. 先搞懂核心概念 什么是 IO:输入(Input)读数据、输出(Output)写数据 IO 操作的核心对象:文件(File)、流(Stream) 阻塞 / 非阻塞、同步 / 异步的基础区别 IO 的核心分类:字节流、字符流 2. 掌握 File 类(操作文件 / 目录)这是 IO 的入口,必须熟练: 创建、删除、重命名文件 2026-04-20 java的IO #java
javaIO高级工具与实战 一、Apache commons-io(开发神器)1. 引入依赖123456<!-- Maven --><dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.15.1< 2026-04-20 java的IO #java
JVM之实战案例 一、Web 服务 GC 频繁调优(最常见)1. 现象 接口偶尔超时、抖动 监控:Minor GC 频繁、老年代缓慢上涨、定时 Full GC CPU 偶尔飙升,STW 导致响应变慢 2. 根因 新生代过小,对象快速进老年代 业务短期小对象过多(JSON 序列化、临时集合、日志对象) Survivor 区太小,对象存活一轮直接晋升 未使用低延迟收集器,GC 停顿过长 3. 优化方案 调大新生代 2026-04-17 jvm #jvm
JVM之参数与调优 一、堆内存核心参数 -Xms 初始堆内存,生产建议 =Xmx,避免运行时动态扩容卡顿 -Xmx 最大堆内存,防止 OOM,根据服务器配置合理设置 -Xmn 新生代整体大小(Eden+2 个 Survivor) -XX:NewRatio 老年代 / 新生代 比例 例:NewRatio=2 老年代:新生代 = 2:1 -XX:SurvivorRatio Eden 2026-04-17 jvm #jvm
JVM之常见线上问题排查 一、OOM 排查 完整流程1. 前置配置(线上必开)12-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/xxx/heap.hprof OOM 自动生成堆快照,避免现场丢失。 2. 排查步骤 拿到进程 PID 若未自动 dump,手动导出: 1jmap -dump:format=b,file=heap.hprof PID 使用 MAT 2026-04-17 jvm #jvm
JVM之监控与分析工具 一、JDK 自带命令行工具1. jps作用:查看当前 Java 进程、进程号 1jps -l # 展示进程ID + 全类名/jar包 日常第一步:先拿进程 PID。 2. jstat作用:实时监控 GC 统计、内存分代使用、类加载 高频用法: 12# 每500毫秒打印一次GC概况jstat -gc 进程ID 500 可看:Eden、Survivor、老年代、元空间、GC 次数 / 2026-04-17 jvm #jvm
JVM之执行引擎 一、字节码执行流程Java 源码 → javac 编译 → Class 字节码 → JVM 执行引擎运行 执行引擎两种模式:解释执行 + 编译执行 1. 解释执行 JVM 自带解释器,逐行读取字节码、边解释边执行 启动快、无需预热 缺点:循环 / 高频代码反复解释,执行效率低 2. 编译执行(JIT) 运行时探测热点代码,一次性编译为本地机器码 直接交由 CPU 执行,效率极高 启动慢 2026-04-17 jvm #jvm