我想知道您是否有一个jar,可以动态地加载到运行的程序中,那么jar中的所有内容(类,资源)是否存储在VM内存中的某个位置?

因此,每次您需要访问类或文本资源文件时(例如通过getClass()。getResourceAsStream),都可以将其快速从内存中拉出,而不必再次访问文件系统中的jar吗?即您可以在此之后删除该jar。

抱歉,如果我问的是错误的问题,请改成解释类加载器过程的问题,因为我可能会误解它,尤其是对于jar中打包的资源。谢谢。

最佳答案

不,通常在您访问资源之前,不会从磁盘上加载资源。

类被加载到内存中,并在首次使用后保留在内存中。资源不会在JVM或JRE级别上缓存-每次调用getResourceAsStream时,都会从磁盘获取新的流。

09-10 09:01
查看更多