クラスパスを検索する必要があるため、クラスがキャッシュされているだけですクラスが初めて参照されたとき。静的イニシャライザが呼び出されるときだけ頻繁に発生しますが、これはプログラムのライフサイクル中に1回だけです。 (またはより具体的には、クラスローダー)複数の(おそらく未使用の)jarファイルの大きなクラスパスが非効率的です
しかし、多くの多くのライブラリーが含まれている大規模で長寿命のプログラムの場合は、使用される場合もあれば使用されない場合もあります。
Jarファイルがメモリにロードされるため、ほとんどのクラスが使用されないという不都合があります。それは記憶に残るのだろうか?
ディレクトリを参照する方が適切ですか?または、Jarファイルはすでに一時的な場所に解凍されていますか?
ディレクトリメソッドをJarファイルメソッドよりも高速に使用できますか?
すべてのJarファイルを1つのディレクトリに抽出して、クラスパス内の場所の数を減らすのは妥当ですか?これはいい考えですか?
セントラルディレクトリは、メモリにマップ(mmap)され、必要に応じて解決されません(コードは完全にはうまくいっていませんが、ほとんど肯定的です) – bestsss
**ファイルのロード中にファイルへのアクセスは非効率です。 JDKは、JARの前にシステムクラス用のzipを使用していました。**これは興味深い点です。 jar(またはzip)ファイルを使用するのはトレードオフです。余分なメモリを使用すると、クラスの読み込みが高速になります。情報をくれてありがとう。 –
@bestsssクラスを見つけようとするとき、それぞれのjarは期限内に開く必要があります。あなたは初期のジャーにすべてのクラスを持っていることは非常に幸運でしょう。たとえば、リソースを探す際に問題が発生することもあります。 –