Pessoal gostaria de saber a diferença entre esses Classes grato desde já é para que cada uma serve .
obrigado perdoe a minha ignorancia!
O que é melhor String ou StringBuilder ou StringBuffer?
11 Respostas
String -> A mais usada… porem toda instancia q vc cria dela… é inalteravel !! o texto q voce colaka no: String s = “texto” :nunk mudara… c vc quiser mudar esse texto vc tera q criar uma nova string!! com o conteudo da primeira mais oq voce deseja colocar!!
todos os métodos retornam algo… e nao alteram a instancia!!
StringBuffer == StringBuilder porem a StringBuilder é mais rapida pois os métodos dela nao sao sincronizados!!
Se usa StringBuilder quando deseja a manipulaçao de textos maiores sem o uso d Threds !! e a StringBuffer o mesmo só que com o uso de Threds
analise a diferença de cada e veja se aonde vc vai usar qual deles te dar suporte a sua aplicacao.
String = tem o caso de objetos perdidos na memoria
StringBuilder - é mais rapido que o buffer por nao ter metodos sincronizados
StringBuffer - aqui qdo vc vai trabalhar com acesso simultaneo eh necessario usar a sincronizacao para manter a consistencia no estado do objeto…
cada caso eh um…
nao posso dizer… use StringBuilder é o melhor que tem… os outros vc pode usar mais o Builder ele é o cara… isso eu seria louco heeh… mas o Builder so existe a partir da versao 1.5
so para lembrar.
Ai pessoal valew mesmo
agradeço 
[size=18]?[/size]
String s = new String("a");
String b=s;
s="lopes;
//objeto perdido o primeiro, s ta referenciado a um novo objeto
so lembrar que String sao imutaveis e qdo trabalhos com essa classe dar ideia que mutavel… mais no fundo nao eh… ate pq ela tem o modificador final 
No caso do exemplo anterior b aponta para o primeiro objeto que s referenciava… apos a criacao de um novo objeto ele nao sofre alteracao nenhuma. é o mesmo disso tb.
String n="carro";
n.concat("azul"); // isso aqui eh perdido na memoria ng ta referenciando
esse assunto ta no cap 5 do livro da kathy para SCJP 5.0 - 310-055 
flw!
Kra, mas qualquer objeto que perde a referência fica “perdido” e é trabalho do coletor de lixo destruí-lo… O problema, creio eu, é o problema de que cada vez que vc precisa de uma String nova a JVM tem que criar várias Strings para ir criando um Objeto novo, e não o problema de fcarem Strings perdidas…
Depois da execução da linha abaixo vão ficar 5 Strings no pool, mas o coletor de lixo vai remover as que não estiverem sendo referenciadas, tem o pool de Strings, ai eu já nãp sei se elas vão ficar lá mesmo assim.
String s = "a" + "b" + "c" + "d";
assim segundo a kathy ao usar StringBuilder ou buffer nao temos objetos perdido devido essas classes opera em cima do objeto que o chamou… e String como sao imutaveis… a cada nova String eh um novo objeto… bom acho q nao me expressei bem é ± isso ai…
String teste = “teste”;
teste = teste + “1”;
Decompila esse código e você terá uma surpresa.
Verá que o compilador converte em StringBuffer e depois retorna para String.
[]'s
String teste = “teste”;
teste = teste + “1”;
Decompila esse código e você terá uma surpresa.
Verá que o compilador converte em StringBuffer e depois retorna para String.
[]'s </blockquote>
bem sacado isso do compilador tranformar…
bem sacado isso do compilador tranformar…
so ta fazendo o trabalho que o code monkey deveria ter feito :roll: