Java库大小

All*_*nde 3 java memory-management

如果我给了两个Jar格式的Java库,1个没有花里胡哨的东西,另一个有很多它们将大部分未使用....我的问题是:

较大的,大多数未使用的库如何影响应用程序的性能?JVM是否延迟加载类,是否拥有更大的类库必然意味着更大的内存占用?

mat*_*t b 7

简短的回答是,只要首次需要,就会加载类.请注意,"needed"也表示"由正在加载的任何其他类引用".

因此,如果您有一堆从未被任何活动代码触及的类,则不会加载它.

如果您想确切地查看JVM正在加载哪些类以及何时加载,您可以使用该-verbose:class选项调用java命令/进程.


And*_*ich 5

引自这里:

何时加载类型?

这是一个令人惊讶的棘手问题.这在很大程度上归功于JVM规范为JVM实现提供的显着灵活性.

必须在链接之前执行加载,并且必须在初始化之前执行链接.VM规范确实规定了初始化的时间.它严格要求在第一次有效使用时初始化类型(参见附录A以获取构成"有效使用"的列表).这意味着类型的加载(和链接)必须在该类型的第一次有效使用时或之前执行.