Realmente Java faz uma cópia da referencia antes de passá-la para a função, 
mas estou curioso para saber qual é a diferença que isso faz na prática?

Posso estar errado, mas acho que toda essa confusão veio da diferença que em 
C++ Strings são mutáveis e em Java não são.

O ponto é: Não dá para alterar a cópia da referência que ficou fora da 
função de dentro da função.

Em C++ vc pode fazer isso MESMO PARA OBJETOS IMUTÁVEIS:

altereIsso(&a, &b, &c);

Em Java não dá para fazer isso para OBJETOS IMUTÁVEIS:

altereIsso(a, b, c); // Não dá se for imutável.

Se for imutável em Java vc terá que fazer:

a = altereIsso(a);
b = altereIsso(b);
c = altereIsso(c);

NA MINHA CABEÇA ISSO É MAIS UMA DIFERENÇA NA SINTAXE DA LINGUAGEM DO QUE UMA 
VANTAGEM. Mas pode ser que alguém apresente algum caso em que isso seria 
realmente uma vantagem de C++/C#.

-----------------------------------
Sergio Oliveira Jr.
Sun Certified Java Programmer
Desenvolvedor e Consultor Java
Empresa SmartJava
WWW.SMARTJAVA.COM.BR
"Dê ao homem um peixe e alimente-o
por um dia. Ensine-o a pescar e
alimente-o por uma vida."
-----------------------------------



>From: "Luiz Fernando Bicalho" <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: <[EMAIL PROTECTED]>
>Subject: RE: [java-list] Re: Artigo Java x C#
>Date: Thu, 4 Oct 2001 10:06:10 -0300
>
>entao o cara esta certo, e passagem por valor
>
>
>
>-----Original Message-----
>From: Ricardo Santiago [mailto:[EMAIL PROTECTED]]
>Sent: quinta-feira, 4 de outubro de 2001 07:58
>To: [EMAIL PROTECTED]
>Subject: Re: [java-list] Re: Artigo Java x C#
>
>
>
>Cara, neste caso voce esta MUDANDO a referencia que
>voce recebeu.
>Voce esta criando uma NOVA referencia e tentando
>atribuir ` referencia que voce recebeu como parametro.
>
>Mas a passagem de objetos EH por referencia (as
>referencias sao passadas por valor)
>
>Exemplo:
>
>class Numero {
>
>   private int value;
>
>   public Numero(int value) {
>     this.value = value;
>   }
>
>   public void inc() {
>     value++;
>   }
>
>   public int getValue() {
>     return value;
>   }
>
>   public static void main(String [] s) {
>     Numero num = new Numero(1);
>     System.out.println("num " + num.getValue());
>     increment(num);
>     System.out.println("num " + num.getValue());
>   }
>
>   private static void increment(Numero num) {
>     num.inc();
>   }
>
>}
>
>Ricardo Munhoz Santiago
>
>--- Leonardo Souza Mario Bueno <[EMAIL PROTECTED]>
>wrote:
> > Nain, nain. Java nco tem passagem por referencia nem
> > para objetos.
> >
> > Ex:
> >
> >     public void inc(Integer i) {
> >         i = new Integer(i.intValue()++);
> >         System.out.println("i = " + i); // i = 2
> >     }
> >
> >     i = new Integer(1);
> >     inc(i);
> >     System.out.println("i = " + i); // i = 1
> >
> > Resultado:
> >
> > i = 2
> > i = 1
> >
> > Ao chamar inc(i) i passada uma referencia ao objeto
> > i por valor.. ou seja,
> > mudangas na referencia dentro do metodo nco terco
> > efeito fora dele..
> >
> > []'s,
> >
> > Leonardo.
> >
> > ----- Original Message -----
> > From: "Carlos E O Chierici" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Wednesday, October 03, 2001 1:35 PM
> > Subject: Re: [java-list] Re: Artigo Java x C#
> >
> >
> > > A passagem de parametros em Java funciona assim:
> > >
> > > - P/ objetos: por referencia
> > > - P/ primitivos: por valor
> > >
> > > Veja o exemplo:
> > >
> > > public class Teste
> > > {
> > >    public void run()
> > >    {
> > >       TObj obj = new TObj();
> > >       obj .i = 3;
> > >       System.out.println(obj.i); // obj.i = 3
> > >       NovoInt(obj);
> > >       System.out.println(obj.i); // obj.i = 5
> > >    }
> > >
> > >    public void NovoInt(TObj meuObj)
> > >    {
> > >       meuObj.i = 5;
> > >    }
> > >
> > >    public static void main(String args[])
> > >    {
> > >       Teste t = new Teste();
> > >        t.run();
> > >    }
> > > }
> > >
> > > class TObj
> > > {
> > >    public int i;
> > > }
> > >
> > >
> > > []s
> > >
> > > Carlos E O Chierici
> > > [EMAIL PROTECTED]
> > >
> > > ----- Original Message -----
> > >
> > > From: <[EMAIL PROTECTED]>
> > > To: <[EMAIL PROTECTED]>
> > > Sent: Wednesday, October 03, 2001 9:52 AM
> > > Subject: RE: [java-list] Re: Artigo Java x C#
> > >
> > >
> > > Sirgio,
> > >
> > > Eu gostaria de fazer uma pequena corregco no seu
> > email.
> > >
> > > Java nco possui passagem por referjncia. Somente
> > por valor. Existe uma
> > forma
> > > de "simular" passagem de parbmetros por
> > referjncia, utilizando os objetos
> > ou
> > > tipos primitivos armazenados em um array, por
> > exemplo. Mas nco existe
> > > passagem por referjncia.
> > >
> > > Antes que o alguim dj pulinhos de alegria, eu
> > pergunto: e qual i o
> > problema?
> > > Alguim por favor, apresente um artigo
> > demonstrativo, baseado em testes de
> > > performance ou de algum requisito que mostre qual
> > i o grandismssimo
> > problema
> > > de Java utilizar passagem por valor, e nco por
> > referjncia? Mesmo que haja,
> > > isso significa que Java i ruim?
> > >
> > > Abragos,
> > > Denard
> > >
> > >
> > > ------------------------------ LISTA SOUJAVA
> > ----------------------------
> > > http://www.soujava.org.br  -  Sociedade de
> > Usuarios Java da Sucesu-SP
> > > dzvidas mais comuns:
> > http://www.soujava.org.br/faq.htm
> > > regras da lista:
> > http://www.soujava.org.br/regras.htm
> > > para sair da lista: envie email para
> > [EMAIL PROTECTED]
> > >
> >
>-------------------------------------------------------------------------
> > >
> >
> >
> > ------------------------------ LISTA SOUJAVA
> > ----------------------------
> > http://www.soujava.org.br  -  Sociedade de Usuarios
> > Java da Sucesu-SP
> > dzvidas mais comuns:
> > http://www.soujava.org.br/faq.htm
> > regras da lista:
> > http://www.soujava.org.br/regras.htm
> > para sair da lista: envie email para
> > [EMAIL PROTECTED]
> >
>-------------------------------------------------------------------------
> >
>
>
>__________________________________________________
>Do You Yahoo!?
>NEW from Yahoo! GeoCities - quick and easy web site hosting, just
>$8.95/month.
>http://geocities.yahoo.com/ps/info1
>
>------------------------------ LISTA SOUJAVA ----------------------------
>http://www.soujava.org.br  -  Sociedade de Usuarios Java da Sucesu-SP
>dzvidas mais comuns: http://www.soujava.org.br/faq.htm
>regras da lista: http://www.soujava.org.br/regras.htm
>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
>para sair da lista: envie email para [EMAIL PROTECTED]
>-------------------------------------------------------------------------
>


_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp


------------------------------ 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
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a