Quando uma classe estática aninhada (e seus membros estáticos) é carregada na memória?
Aqui, eu estava tentando implementar uma classe singleton para minha conectividade de banco de dados usando a classe auxiliar estática interna:
package com.myapp.modellayer;
public class DatabaseConnection {
private DatabaseConnection() {
//JDBC code...
}
private static class ConnectionHelper {
// Instantiating the outer class
private static final DatabaseConnection INSTANCE = new DatabaseConnection();
}
public static DatabaseConnection getInstance() {
return ConnectionHelper.INSTANCE;
}
}
No entanto, minha dúvida é quando essa classe interna estática,ConnectionHelper, é carregado na memória da JVM:
No momento em queDatabaseConnection a classe é carregada ou no momento em quegetInstance () método é chamado?