Objetos sao sempre passados por referencia no mesmo virtual machine!!! O exemplo do StringBuffer embaixo prova isso. A variavel foi declarada, alterada num outro metodo e o conteudo dele mudou no primeiro metodo. Se fosse por valor uma copia do StringBuffer ia ser criada, alterada no outro metodo, e no primeiro metodo o conteudo nao seria alterada.
Pois, tem objetos que funcionam diferentes. Passar um String por referencia nao faz sentido por que nao e mutavel. Por exemplo, ao concatenar um String com outro o primeiro nao e alterada, mais sim um terceiro String e criado. String str = "a"; str += "b"; // cria um String novo na memoria, use StringBuffer para ganhar performance quando voce vai concatenar um String varias vezes. -- ====================================== Karl Silva Lovgren Binary Evolution Sao Paulo - Brazil [EMAIL PROTECTED] http://www.binaryevolution.hpg.com.br On Wed, 2003-05-14 at 18:57, Alexandro Strack wrote: > 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] -------------------------------------------------------------------------