Java 程序发起调用 FileInputStream.read 读取磁盘文件,使用 byte[] 对象接受数据,内存调用的全过程。

文件数据从磁盘 copy 到内核缓冲区。

Transclude of Disk_to_Kernel-2022-12-19-1014-2.excalidraw

内核缓冲区将文件数据 copy 到 JVM 内存空间,byte[] 数组有了文件数据。

Transclude of kernel_to_JVM-2022-12-19-1014.excalidraw

JVM 将 byte 数组数据 copy 到 Socket 内核缓冲区

Transclude of JVM-to-Socket-2022-12-19-1014.excalidraw

内核缓冲区将数据 copy 到网卡发送。

Transclude of Socket-to-NetworkCard.excalidraw