對 Java 文件操作的底層研究
類 java.io.File 用于文件操作。每當(dāng)調(diào)用其相關(guān)方法時都有可感知的延遲,是什么導(dǎo)致
執(zhí)行的低效?是道德的毀滅還是屎山的再現(xiàn)?
拿 File.createNewFile() 方法舉例。

根據(jù) JDK 19 源代碼,其封裝了:
java.nio.FileSystem.createNewFileExclusively(String path)?
接口,執(zhí)行前還有安全檢查,對應(yīng)的類為?
java.security.SecurityManager
,其用于檢查、防止惡意代碼的執(zhí)行。
fs 變量是 FileSystem 的實例

getFileSystem() 方法在?java.io.DefaultFileSystem 中實現(xiàn):

如果是 Windows 系統(tǒng),則調(diào)用 java.io.WinNTFileSystem,如果是 Linux 和 MacOS,則是 UnixFileSystem,這些類就是 File.createNewFile()?方法最終實現(xiàn)的地方,如下:

native 關(guān)鍵字揭示最終實現(xiàn)都是用 C/C++。
綜上,一步步的封裝是拖延?Java?執(zhí)行速度的原因,也是面向?qū)ο缶幊痰娜秉c。
標簽: