How this Reflection Java Code catch the String in the System.out.println?
===

Can you explain to me what happens executing this code? I know that it prints out "G'Day Mate.", but how the Reflection catch the System.out.println? What happens at the Stack/Heap level? Thank you so much.

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