Suspiro10… uma explicaçao um pouco mais detalhada.
StringBuffer é uma classe… com seus n métodos e atributos…
um dos métodos da StringBuffer é o append(), existe diversas sobrecargas para este método, e uma delas recebe uma String como parametro
t.append("Duvida de java")
isso faz com que o StringBuffer guarde dentro dele essa String “Duvida de java”.
Depois outro método do StringBuffer é o substring, que recebe dois numeros inteiros por parametro, e retorna uma nova String.
Então internamente ele ja tem a String “Duvida de java”, assim ele pega essa String, da posição 2 a 5, e cria uma nova String retornando essa nova String para quem chamou o método substring(int, int).
entendeu?