誰かが次のような状況でのファイルを持つオブジェクトの最小メモリフットプリントのための最善の解決策を説明することができれば、私は数百のFooクラスに1があるかもしれませんファイルを持つオブジェクトのメモリ管理。
- ...と思いまして。
- スレッドの安全性は、重要な道のりです。
- 毎回Fooクラスのファイルにアクセスするわけではありません。
- 各ファイルは一意です。
- Fooクラスのファイルに複数回アクセスすることができます。
私は、以下のソリューションのプロファイルを立てて、メモリの使用量を最小限に抑えることを計画していました。私は一番うまくいくと思いますが、いくつかのフィードバックに興味がありました。解決策1は最良のアプローチのようですが、メモリリークが発生しやすくなると、何かがゲッターにアクセスするようになります。思考?
解決策1:
public class Foo{
private final String pathToFile;
public class Foo(String pathToFile){
this.pathToFile = pathToFile;
}
public File getFile(){
return new File(pathToFile);
}
}
解決策2:
public class Foo{
private final File file;
public class Foo(String pathToFile){
this.file = new File(pathToFile);
}
public File getFile(){
return file;
}
}
解決策3:これは、すべてはO depens
public class Foo{
private final String pathToFile;
private File file = null;
public class Foo(String pathToFile){
this.pathToFile = pathToFile;
}
public File getFile(){
if (file == null){
file = new File(pathToFile);
}
return file;
}
}
あなたの答えがあなたに最も助けになったものを受け入れるなら、他の人も同様にそれから学ぶことができます – RMT