对 Java 文件操作的底层研究
类 java.io.File 用于文件操作。每当调用其相关方法时都有可感知的延迟,是什么导致
执行的低效?是道德的毁灭还是屎山的再现?
拿 File.createNewFile() 方法举例。

根据 JDK 19 源代码,其封装了:
java.nio.FileSystem.createNewFileExclusively(String path)
接口,执行前还有安全检查,对应的类为
java.security.SecurityManager
,其用于检查、防止恶意代码的执行。
fs 变量是 FileSystem 的实例

getFileSystem() 方法在 java.io.DefaultFileSystem 中实现:

如果是 Windows 系统,则调用 java.io.WinNTFileSystem,如果是 Linux 和 MacOS,则是 UnixFileSystem,这些类就是 File.createNewFile() 方法最终实现的地方,如下:

native 关键字揭示最终实现都是用 C/C++。
综上,一步步的封装是拖延 Java 执行速度的原因,也是面向对象编程的缺点。