Wann wird eine statisch verschachtelte Klasse (und ihre statischen Mitglieder) in den Speicher geladen?

Hier habe ich versucht, eine Singleton-Klasse für meine Datenbankkonnektivität mithilfe der inneren statischen Hilfsklasse zu implementieren:

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;
    }
}

Ich bezweifle jedoch, wann diese statische innere KlasseConnectionHelper, wird in den JVM-Speicher geladen:

Zur Zeit wennDatabaseConnection Klasse wird geladen, oder zu einem Zeitpunkt, wennbekomme Instanz() Methode heißt?