プライベートフィールドはカプセル化を促進します
private
フィールドまたはメソッドを他のクラスに公開する必要がない限り、これは一般的に受け入れられている規則です。これを習慣として取り入れることで、長期的には多くの苦痛を軽減できます。
ただし、public
フィールドまたはメソッドに本質的に問題はありません。ガベージコレクションに違いはありません。
場合によっては、アクセスの種類によってはパフォーマンスに影響がありますが、おそらくこの質問のトピックよりも少し進んでいます。
そのようなケースの1つは、外部クラスのフィールドにアクセスする内部クラスに関係しています。
class MyOuterClass
{
private String h = "hello";
// because no access modifier is specified here
// the default level of "package" is used
String w = "world";
class MyInnerClass
{
MyInnerClass()
{
// this works and is legal but the compiler creates a hidden method,
// those $access200() methods you sometimes see in a stack trace
System.out.println( h );
// this needs no extra method to access the parent class "w" field
// because "w" is accessible from any class in the package
// this results in cleaner code and improved performance
// but opens the "w" field up to accidental modification
System.out.println( w );
}
}
}