Cara, vamos deixar claro:
Tudo em java é passado por valor.
MAS, você só mantém REFERENCIAS para objetos (ou
pointeiros se achar melhor).
Logo, todo objeto é passado por referencia visto que a
referencia é que é passada por valor!

Isso não implica de forma alguma em perda de
performance, simplesmente significa que qq váriavel
que você passar como paramêtro, se for modificada
dentro do método invocado,não refletirá as mudanças
quando o método retornar

Como em:

String s = "test";
int i = 1;

mudeOsValores(s, i);

System.out.println(s + 1); // == "test1"

Onde o metodo mudeOsValores contem o seguinte codigo

public void mudeOsValores(String s, int i) {
  s = "outracoisa";
  i = 2;
}

Ricardo Munhoz Santiago
--- [EMAIL PROTECTED] wrote:
> Sérgio,
> 
> Eu gostaria de fazer uma pequena correção no seu
> email.
> 
> Java não possui passagem por referência. Somente por
> valor. Existe uma forma
> de "simular" passagem de parâmetros por referência,
> utilizando os objetos ou
> tipos primitivos armazenados em um array, por
> exemplo. Mas não existe
> passagem por referência.
> 
> Antes que o alguém dê pulinhos de alegria, eu
> pergunto: e qual é o problema?
> Alguém por favor, apresente um artigo demonstrativo,
> baseado em testes de
> performance ou de algum requisito que mostre qual é
> o grandisíssimo problema
> de Java utilizar passagem por valor, e não por
> referência? Mesmo que haja,
> isso significa que Java é ruim?
> 
> Abraços,
> Denard
> 
> -----Original Message-----
> From: Sergio Oliveira Jr.
> [mailto:[EMAIL PROTECTED]] 
> Sent: terça-feira, 2 de outubro de 2001 22:56
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED];
> [EMAIL PROTECTED]
> Subject: [java-list] Re: Artigo Java x C#
> 
> Mauro,
> 
> Não era a minha intensão te tirar do sério. Não vejo
> problema algum em me 
> engajar num papo com você face-to-face. Só estou
> conversando com você via 
> email por ser mais conveniente, afinal a tecnologia
> está aí para facilitar a
> 
> nossa vida, certo?
> 
> Vou continuar falando racionalmente, apesar de não
> ver nenhum problema em te
> 
> encontrar para um papo mais descontraído.
> 
> Alguns absurdos que vc escreveu:
> 
> - Java não possui todos os tipos derivados de
> ancestral comum:
> 
> Possui sim... Além de possuir tipos primitivos mais
> leves, que por sua vez 
> possuem suas classes equivalentes (Wrappers). Todas
> são derivadas da class 
> Object.
> 
> - Java não possui Structs:
> 
> Realmente não possui a palavra Structs, mas é
> ridículo simular um C Struct 
> com uma class ou inner class.
> 
> - Java não pode passar parametros por referencia:
> 
> Todos os objetos Java são passados por referencia.
> Qualquer principiante em 
> Java precisa saber disso.
> 
> - Java não possui Propriedades:
> 
> Já ouviu falar em JavaBeans ??? Tb existe uma classe
> Properties que faz isso
> 
> facilmente.
> 
> - Java categoricamente não possui eventos nem
> delegate:
> 
> Toda a GUI do Java é orientada a eventos e a
> listeners.
> Java não possui ponteiros para funções, mas possui
> interfaces que podem 
> facilmente e de uma forma mais elegante e poderosa
> realizar callbacks.
> 
> - Java não possui Atributos:
> 
> Não sei o que vc quiz dizer com isso, mas Java
> possui uma API de Reflection 
> poderosíssima.
> 
> - Java não possui Ponteiros:
> 
> Ainda bem! Referencia = Ponteiro com a excessão que
> não podemos fazer 
> operações aritiméticas com referencias.
> Todo mundo sabe que os ponteiros sempre foram a
> maior fonte de bugs, falhas 
> de segurança, vírus e dores de cabeça para os
> programadores C.
> 
> - Java não possui Forech: loop para varrer arrays e
> coleções
> 
> Dê uma olhada na API Collections. Vc vai ficar
> impressionado com a 
> qualidade, eficiência e performance dessa API.
> 
> - Java não possui Campos readonly.
> 
> Lógico que possui. Basta utilizar final.
> 
> - Java não possui Documentação integrada em XML.
> 
> Javadoc serve exatamente para isso que vc sugere
> como vantagem do C#.
> 
> - Java não possui Controle sobre "estouro de faixa"
> numérica
> 
> Lógico que possui. Pelo amor de Deus...
> 
> - Java não possui Diretivas de compilação
> condicional (#ifdef etc)
> 
> Não precisa pois utilizando o final boolean DEBUG =
> false; o compilador 
> automaticamente otimiza o código compilado retirando
> esse código morto.
> 
> - Java não possui Padronização por algum organismo
> internacional
> 
> ??? Já ouviu falar em Enterprise JavaBeans, Servlet,
> JSP, etc. Diversas 
> empresas adotaram essas especificações,
> independentemente de imposições da 
> Sun. Apenas a Máquina Virtual da microsoft não era
> compatível com todas as 
> demais, daí a derrota da Microsoft na justiça.
> 
> - Java não Chama APIs do Windows e DLLs
> 
> Lógico que chama via JNI.
> 
> Como voce percebe pelos meus comentários acima. Vc
> definitivamente não é a 
> pessoa certa para fazer essa comparação entre C# e
> Java. A não ser que vc 
> seja um homem de marketing e não da área de TI.
> 
> ------------------------------
> Sergio Oliveira Jr.
> Sun Certified Java Programmer
> Desenvolvedor e Consultor Java
> Empresa SmartJava
> ------------------------------
> 
> 
> 
> >From: "Mauro Sant'Anna" <[EMAIL PROTECTED]>
> >To: [EMAIL PROTECTED]
> >Subject: Re: Artigo Java x C#
> >Date: Wed, 03 Oct 2001 00:41:36 +0000
> >
> >Se você quizesse "alertar-me", teria fornecido
> exemplos concretos e fatos 
> >ao invés de me chamar de ignorante/mentiroso.
> >
> >É incrível como as pessoas ficam "valentes" na
> frente de um teclado. 
> >Imagine se você teria a coragem de me dizer cara a
> cara o que você me 
> >escreveu, depois de uma comparação C# X Java em um
> eventual seminário da 
> >Microsoft - mais ou menos ou equivalente a um
> artigo no site da Microsoft.
> >
> >Mauro
> >
> >>From: "Sergio Oliveira Jr." <[EMAIL PROTECTED]>
> >>To: [EMAIL PROTECTED]
> >>CC: [EMAIL PROTECTED],
> [EMAIL PROTECTED]
> >>Subject: Re: Artigo Java x C#
> >>Date: Wed, 03 Oct 2001 00:35:27 +0000
> >>
> >>Mauro,
> >>
> >>Eu te dei duas opções:
> >>
> >>1) Vc está mentindo
> >>2) Vc não sabe nada sobre Java
> >>
> >>Se vc optou pela alternativa 1), não há nada que
> eu 
=== message truncated ===


__________________________________________________
Do You Yahoo!?
Listen to your Yahoo! Mail messages from any phone.
http://phone.yahoo.com

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