Ricardo,
O objeto string n�o vale porque � uma classe IMUT�VEL. N�o h� como trocar o
valor da String sem criar outro objeto, ou seja, sem criar outra referencia
!!!!!!
Classes Imut�veis s�o muito interessantes porque s�o THREAD-SAFE, evitando
condi��es de corridas e bugs intermitentes. Classes mut�veis s�o perigosas e
podem introduzir brechas de seguran�a no seu c�digo, principalmente se voc�
estiver escrevendo uma API para um outro programador utilizar. (Algu�m a�
ainda tem a documenta��o do Java 1.0 ??? Acho que a classe String no come�o
era Mut�vel e s� depois a Sun percebeu que isso n�o era bom e transformou
ela em Imut�vel. Mas n�o tenho certeza disso.)
Se eu tenho um objeto MUT�VEL como um Vetor por exemplo, eu posso
modific�-lo dentro da fun��o sem problemas.
N�o � muito dif�cil construir uma String Mut�vel e a� eu poderia fazer um
Swap(s1, s2) pagando o pre�o de ter que instanciar duas novas Strings. O
Sven foi muito feliz levantando essa bola do Swap(&a,&b) e acabou me
deixando com a seguinte d�vida:
Em C++ d� para fazer um Swap de Objetos Imut�veis ??? Se d� gostaria de
entender como o C++ faz isso, isto �, o que acontece por tr�s do pano.
------------------------------
Sergio Oliveira Jr.
Sun Certified Java Programmer
Desenvolvedor e Consultor Java
Empresa SmartJava
------------------------------
>From: Ricardo Santiago <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: [EMAIL PROTECTED]
>Subject: RE: [java-list] Re: Artigo Java x C#
>Date: Wed, 3 Oct 2001 09:16:54 -0700 (PDT)
>
>
>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]
>-------------------------------------------------------------------------
>
_________________________________________________________________
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]
-------------------------------------------------------------------------