Na verdade o que ocorre ai é o seguinte, vc não alterou o valor da sua String e sim a referência para ela.

Em java existe uma coisa chamada pool de string, que em tempo de compilação ele transforma em Objetos String todas as Literais String, ou seja, se vc fizer:

String abc = "abc";
String def = "abc";
// if( abc == def ) true
// if( abc == "abc" ) true

eles conterão a referência para o mesmo objeto, porém qndo vc faz:

def = "def";

vc nao trocou o valor do objeto e sim a referencia dele, que estará apontando para um outro objeto.

Ou seja, todos os Wrapper do java são imutaveis no seu valor (Integer, Char, Double, Float, Long, String)...
porem pode-se mudar a referencia para outro objeto.. isso eh um pouco logico, pois se mudasse o valor, poderia afetar outras referencias do programa...

  Rafael Steil <[EMAIL PROTECTED]> escreveu:


Bom, eu concordo que a documentacao diz isso, e ja fiz testes onde realmente
nao consegui alterar o valor de uma String. Mas entao porque o codigo

public class StringTest
{
public static void main(String args[])
{
String s1 = "Minha String";
System.out.println("s1: "+ s1);
s1 = "Alterei o valor";
System.out.println("s1 alerada: "+ s1);
}
}

mostra os valores "Minha String" "Alterei o valor" ? ou seja, o valor da String foi
modificado. Isso me deixa um pouco confuso tmb..

Rafael Steil

> Ola...
> Como voce fez isso? Acho que nao pode mudar o valor de uma String de jeito nenhum
> Se voce olhar o codigo fonte da classe java.lang.String, vai ver:
>
> private char value[];
>

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------


Yahoo! PageBuilder - O super editor para criação de sites: é grátis, fácil e rápido.

Responder a