Title: RE: [java-list] Java: Passagem por valor ou referencia?

Pessoal,

Eu acho um pouco falacioso chamar de "passagem por referência" esse tipo de coisa. Como Java não tem ponteiros, não podemos acessar o conteúdo das referências utilizadas como fazíamos em C. Assim, quando passamos um objeto como parâmetro, estamos passando na verdade a referência ao objeto, e é passado uma cópia dessa referência. Se a passagem fosse por referência, não haveria essa cópia. Tudo bem que aí teremos duas referências para o mesmo objeto, mas enfim, a passagem é por valor.

Apenas para citar uma referência, um livro de certificação bastante utilizado, "COMPLETE JAVA 2 CERTIFICATION STUDY GUIDE", do Simon Roberts, Phillip Heller e Ernest Michael tem um capítulo que fala sobre isso. Eles afirmam categoricamente: Não existe passagem por referência em Java. Somente por valor.

No stress,

Abraços,
Denard

-----Original Message-----
From: Alysson Neves Bessani [mailto:[EMAIL PROTECTED]]
Sent: quarta-feira, 3 de outubro de 2001 16:18
To: [EMAIL PROTECTED]
Subject: [java-list] Java: Passagem por valor ou referencia?


        Bom, aqui acho q cabe uma esclarecida: Os tipos basicos em java
sao passados por valor. Assim quando um tipo basico eh passado por
parametro ele eh COPIADO para dentro do metodo q vai ser executado. Os
objetos, como nao sao manipulados diretamente na pilha da maquina virtual
sao passados sempre por "referencia". Isto porque a pilha trata
referencias a objetos, e uma vez essas passadas como parametro, elas (as
referencias) sao COPIADAS pra dentro do metodo. Assim a referencia copiada
continua "apontando" pro objeto antigo e qualquer alteracao neste eh
valida dentro e fora do metodo.

        Abracos.

On Wed, 3 Oct 2001 [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 possa fazer.
> >>
> >>Só quiz humildemente alertá-lo que comprar uma briga sem estar numa
> >>posição neutra e sem possuir informações corretas pode ser perigoso para a
>
> >>sua imagem profissional.
> >>
> >>Possuo 6 anos de experiência com a tecnologia Java e posso lhe afirmar que
>
> >>o seu artigo possui diversas afirmações incorretas, bizarras e suspeitas
> >>sobre a tecnologia java.
> >>
> >>------------------------------
> >>Sergio Oliveira Jr.
> >>Sun Certified Java Programmer
> >>Desenvolvedor e Consultor Java
> >>------------------------------
> >>
> >>
> >>
> >>>From: "Mauro Sant'Anna" <[EMAIL PROTECTED]>
> >>>To: [EMAIL PROTECTED]
> >>>Subject: Re: Artigo Java x C#
> >>>Date: Wed, 03 Oct 2001 00:24:44 +0000
> >>>
> >>>Caro senhor,
> >>>
> >>>O meu e-mail está disponível para críticas construtivas e esclarecimento
> >>>de dúvidas, não para ofensas.
> >>>
> >>>Mente o senhor ao iniciar a mensagem com "Com todo o respeito" e a seguir
>
> >>>me chamar de mentiroso.
> >>>
> >>>Sem mais,
> >>>
> >>>Mauro
> >>>
> >>>>From: "Sergio Oliveira Jr." <[EMAIL PROTECTED]>
> >>>>To: [EMAIL PROTECTED]
> >>>>CC: [EMAIL PROTECTED], [EMAIL PROTECTED]
> >>>>Subject: Artigo Java x C#
> >>>>Date: Wed, 03 Oct 2001 00:19:20 +0000
> >>>>
> >>>>
> >>>>Caro Mauro Sant'Anna,
> >>>>
> >>>>Com todo o respeito gostaria de lhe informar que o seu artigo sobre Java
>
> >>>>x C# possui diversos erros grotescos em relação a tecnologia Java. Isso
> >>>>demonstra que ou vc está mentindo para promover a tecnologia C# ou vc
> >>>>não sabe absolutamente nada sobre a tecnologia Java e nunca deveria ter
> >>>>escrito um artigo como esse.
> >>>>
> >>>>Eu não tenho nenhuma experiência com a tecnologia .Net, apenas sei que
> >>>>ela é a alternativa da Microsoft para o sucesso da linguagem Java no
> >>>>mercado. Portanto me limito a ficar calado quando o assunto é comparar
> >>>>C# com Java. Vc definitivamente deveria fazer o mesmo para não passar
> >>>>vergonha.
> >>>>
> >>>>------------------------------
> >>>>Sergio Oliveira Jr.
> >>>>Sun Certified Java Programmer
> >>>>Desenvolvedor e Consultor Java
> >>>>------------------------------
> >>>>
> >>>
> >>
> >
>
>
> _________________________________________________________________
> 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]
> -------------------------------------------------------------------------
>

--
Alysson Neves Bessani
LCMI - Laboratorio de Controle e Microinformatica
UFSC - Universidade Federal de Santa Catarina
mailto:[EMAIL PROTECTED]   icq:120876003

        "Ninguem tem o direito de se sentir ofendido."
                        - John "Monty Python" Cleese



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