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] -------------------------------------------------------------------------
