¿Cuándo se carga en la memoria una clase anidada estática (y miembros estáticos)?

Aquí, estaba tratando de implementar una clase singleton para mi conectividad de base de datos usando la clase 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;
    }
}

Sin embargo, mi duda es cuándo esta clase interna estática,ConnectionHelper, se carga en la memoria JVM:

A la hora cuandoDatabaseConnection la clase se carga o en un momento en queobtener Instancia() se llama método?

Respuestas a la pregunta(2)

Su respuesta a la pregunta