Stringbuffer

3 respostas
M

deixa eu ver se entendi, uma string nao altera porque toda vez que seu conteudo muda ele referencia um novo objeto na memoria e um stringbuffer alterara porque o conteudo “original” é quem muda, é isso ?

3 Respostas

F

exatamente! qndo vc usa um objeto String, qndo vc for modificar, na verdade vc vai estar marcando a string antiga para a coleta de lixo e criando uma nova, se vc estiver usando muita manipulacao de string em um metodo, o ideal seria usar StringBuffer q vai ficar mais rapido e precisar de menos memoria…

isso ocorre pq a classe String cria um array de char do tamanho da sua string (desconsiderando o ‘\0’ q vai indicar o fim da string), dai qndo vc for alterar, vai ter q criar outra para comportar o novo numero de caracteres, jah a classe StringBuffer, vc seta o tamanho da string, dai ela pode variar sem problemas, mas se vc tiver uma string q n vai ser muito alterada, eh melhor usar a classe String pq dai vc n vai ta ocupando mais espaco do q o necessario, dai o prog fica amis rapido…

D

taí, vivendo e aprendendo hauhau… naum sabia dessa

J

“Felipe”:
exatamente! qndo vc usa um objeto String, qndo vc for modificar, na verdade vc vai estar marcando a string antiga para a coleta de lixo e criando uma nova, se vc estiver usando muita manipulacao de string em um metodo, o ideal seria usar StringBuffer q vai ficar mais rapido e precisar de menos memoria…

isso ocorre pq a classe String cria um array de char do tamanho da sua string (desconsiderando o ‘\0’ q vai indicar o fim da string), dai qndo vc for alterar, vai ter q criar outra para comportar o novo numero de caracteres, jah a classe StringBuffer, vc seta o tamanho da string, dai ela pode variar sem problemas, mas se vc tiver uma string q n vai ser muito alterada, eh melhor usar a classe String pq dai vc n vai ta ocupando mais espaco do q o necessario, dai o prog fica amis rapido…

Por isso que um objeto String é dito inalterável. Na primeira vista quem lê isso fica 8O , mas o que acontece realmente é o que vc falou…

Criado 12 de agosto de 2004
Ultima resposta 12 de ago. de 2004
Respostas 3
Participantes 4