Vamos tentar destrinchar um exemplo mais simples:
class S{public static void main(String[]a){String s="class S{public static void main(String[]a){String s=;char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}";char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}
Observe que o conteúdo da string s contém todos os comandos do programa. Depurando o código, veremos que ele segue a seguinte seqüência:
[color=“blue”]1[/color]. Primeiramente, ele pega os primeiros 52 caracteres da string s , que correspondem a
class S{public static void main(String[]a){String s=
[color=“green”]2[/color]. Em seguida, ele concatena, ao trecho selecionado no passo anterior, o caracter cujo código ASCII é 34, que é o "
[color=“red”]3[/color]. Depois, ele concatena todo o conteúdo da string s , que corresponde a
class S{public static void main(String[]a){String s="class S{public static void main(String[]a){String s=;char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}
[color=“violet”]4[/color]. Em seguida, ele concatena outro caracter " , delimitando o conteúdo da string s na tela.
[color=“orange”]5[/color]. Finalmente, ele concatena o resto da string s (a partir da posição 53), que corresponde a
;char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}
e imprime na tela a string resultante
Juntando tudo, teremos a seguinte saída (eu separei por cores a porção do texto que vai sendo adicionada em cada passo do programa, segundo a ordem que eu expliquei acima):
[color=“blue”]class S{public static void main(String[]a){String s=[/color][color=“green”]" [/color][color=“red”]class S{public static void main(String[]a){String s=;char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}[/color][color=“violet”]" [/color][color=“orange”];char c=34;System.out.println(s.substring(0,52)+c+s+c+s.substring(52));}}[/color]
que é exatamente o código do programa (compare com o código no começo do post).