Puzzle Java z refleksją i ciągiem

To źródło wysyłaG'Day Mate. Jak to się dzieje?

public static void main(String args[]) {
    System.out.println("Hello World");
}

static {
    try {
        Field value = String.class.getDeclaredField("value");
        value.setAccessible(true);
        value.set("Hello World", value.get("G'Day Mate."));
    } catch (Exception e) {
        throw new AssertionError(e);
    }
}

A jeśli zmienimy główne funkcje"Hello World" donew String("Hello World"):

System.out.println(new String("Hello World"));

To wyjścieHello world .

Co się właściwie dzieje?

questionAnswers(2)

yourAnswerToTheQuestion