O valor de um objeto String nao pode ser mudado (ele e final)... Uma vez que vc crie uma String chamada strTeste com valor "TESTE", ele NUNCA tera o seu valor alterado. E por isso que muitas vezes erramos colocando no codigo uma linha so com strTeste.replace('S','L'); e nao funciona! e porque os metodos da classe String retornam uma NOVA String, entao o correto seria strTeste=strTeste.replace('S','L');
Entao, se vc fizer muitos appends do tipo strTeste+="ABC"; vc tera problemas de desempenho pelo numero de objetos gerados. O melhor e vc usar um objeto StringBuffer que usando o metodo append ele nao vai criar outros objetos. Pedro ----- Original Message ----- From: "Kleber Rodrigo de Carvalho" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, May 19, 2003 2:00 PM Subject: [java-list] mutavel e não mutável > O que é mutavel e não mutável ? > > > ----- Original Message ----- > From: "Alexandro Strack" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Wednesday, May 14, 2003 6:57 PM > Subject: Re: [java-list] Pergunta for Dummies > > > > Oi Rodrigo, > > > > Não concordo com você. O que acontece na verdade é que a classe > > StringBuffer é mutável (diferente de String que é não mutável) e logo o > que > > se passa é que o método append está alterando o valor de uma > > propriedade(variável) interna da classe StringBuffer. Essa propriedade > > armazena o valor. Para você ter a certeza do que estou falando mude de > > StringBuffer para String e substitua o append por += . Você verá que > > imprimirá JAVA. > > > > Para ir mais além mude todo o seu exemplo para trabalhar não com um > > StringBuffer mas com um Integer. Verá que também não funcionará pois a > > classe Integer é não mutável. > > > > Em resumo: a passagem de parâmetro é sempre por valor. > > > > Um abraço, > > > > Alexandro Strack > > ----- Original Message ----- > > From: "Rodrigo" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Saturday, May 10, 2003 7:16 PM > > Subject: Re: [java-list] Pergunta for Dummies > > > > > > > hehehe, o exemplo não foi, agora sim: > > > > > > --- > > > public class Teste { > > > > > > public static void main(String[] args) { > > > StringBuffer s = new StringBuffer( " Java" ); > > > teste( s ); > > > System.out.println( s ); > > > } > > > public static void teste( StringBuffer s ) { > > > s.append( " é bala" ); > > > } > > > } > > > ---- > > > A saída será "Java é bala" o q no meu ver significa que a passagem foi > por > > > referência já que alterei o meu objeto que passei por parâmetro... > > > > > > Fallow > > > ----- Original Message ----- > > > From: "Rodrigo" <[EMAIL PROTECTED]> > > > To: <[EMAIL PROTECTED]> > > > Sent: Saturday, May 10, 2003 7:14 PM > > > Subject: Re: [java-list] Pergunta for Dummies > > > > > > > > > > Eu sou suspeito a falar, mas pelo que sei toda a passagem de objetos > em > > > java > > > > é por referência, já as passagens de tipos básicos serão sempre por > > > valor... > > > > > > > > Desculpe-me se estiver errado... > > > > > > > > Segue um exemplo: > > > > > > > > ----- Original Message ----- > > > > From: "José Voss Junior" <[EMAIL PROTECTED]> > > > > To: <[EMAIL PROTECTED]> > > > > Sent: Wednesday, May 07, 2003 9:21 PM > > > > Subject: Re: [java-list] Pergunta for Dummies > > > > > > > > > > > > Correção, Passagem de Parametro em Java é somente por Valor!!!!! > > > > ----- Original Message ----- > > > > From: Ricardo Jun Taniguchi <[EMAIL PROTECTED]> > > > > To: <[EMAIL PROTECTED]> > > > > Sent: Friday, May 02, 2003 5:36 PM > > > > Subject: RE: [java-list] Pergunta for Dummies > > > > > > > > > > > > Lembrando-se de que os parâmetros são passados por referência em Java, > > > temos > > > > que: > > > > > > > > new Boolean(true) à esquerda = objeto A instanciado com o parâmetro > > true; > > > > new Boolean(true) à direita = objeto B instanciado com o parâmetro > true; > > > > > > > > Como a comparação == é feita por meio da verificação dos endereços dos > > > > objetos e não pelo seu conteudo, naturalmente essa comparação daria > > false. > > > > > > > > Agora, se quiser que seja true, temos que fazer: > > > > > > > > if (new Boolean(true).equals(new Boolean(true))) > > > > > > > > > > > > -----Original Message----- > > > > From: Nelson [mailto:[EMAIL PROTECTED] > > > > Sent: Tue 29-Apr-03 16:35 > > > > To: SouJava > > > > Cc: > > > > Subject: [java-list] Pergunta for Dummies > > > > Alguém pode me dizer, porque o código abaixo, imprime "false" ? > > > > > > > > class teste { > > > > > > > > public static void main(String[] args) { > > > > > > > > if (new Boolean(true) == new Boolean(true)) { > > > > System.out.println("true"); > > > > } else { > > > > System.out.println("false"); > > > > } > > > > } > > > > } > > > > > > > > > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------------------- > > > -- > > > > ---- > > > > > > > > > > > > ------------------------------ 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] > > > > > > > ------------------------------------------------------------------------- > > > > > > > > > > > > ------------------------------ 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] > > > > > > > ------------------------------------------------------------------------- > > > > > > > > > > > > > > > > > ------------------------------ 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] > > > > ------------------------------------------------------------------------- > > > > > > > > > > ------------------------------ 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] > > ------------------------------------------------------------------------- > > > ------------------------------ 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] > ------------------------------------------------------------------------- > ------------------------------ 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] -------------------------------------------------------------------------