Cara, a questão não é da imutabilidade das strings nesse caso.
A questão é que os parâmetros para o java são sempre por referência, logo a referência que foi passada para o método foi a variável y do método "main". Quando você no método x fez str1 = str1.concat(" ok xxxxxxxxxxxx"); você mudou a referência em memória da variável str1. -----Mensagem original----- De: Rodrigo Alvares de Souza [mailto:[EMAIL PROTECTED] Enviada em: Friday, May 30, 2003 10:32 AM Para: '[EMAIL PROTECTED]' Assunto: [java-list] Dúvida cruel Alguem saberia me dizer pq qdo eu imprimo a variavel y, ela está vazia ? Eu sei que tem a ver com a imutabilidade das Strings, mas queria uma resposta que me convencesse.... :-) public class teste1 { public teste1() { } public static void main(String[] args) { teste1 t = new teste1(); String y = new String("teste - "); int z = 10; System.out.println(t.x(y,z)); System.out.println(y); } private String x (String str1,int z) { str1 = str1.concat(" ok xxxxxxxxxxxx") ; z = 2003; return str1; } } Obrigado. Atenciosamente, Paulo Henrique C. Zanchettin Scopus Tecnologia S/A ( 55-11-3909-3561 * [EMAIL PROTECTED] ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usurios Java da Sucesu-SP dvidas 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] ------------------------------------------------------------------------- ------------------------------ 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] -------------------------------------------------------------------------