Amigos, O interessante aqui, é perceber que quando programamos: String s; s = "ale"; Isto é o mesmo que s = new String( "ale" );
É executado uma construção de uma nova String por isso o valor não é mudado... Mas o int me pegou!!!! :):) Por que o int não muda?? Não é um tipo primitivo? Abraços, Alessandro. ----- Original Message ----- From: "Ricardo Santiago" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, October 04, 2001 7:42 AM Subject: RE: [java-list] Re: Artigo Java x C# GEA2 > > Não estou querendo te chamar de louco, mas acho que > voce deveria ter testado antes de dizer que "sempre > funcionou" errado. > Por voce mesmo nao testa? > > public class ProvaDaPassagemPorValor { > > public static void main(String [] s) { > String s = "test"; > int i = 1; > mudeOsValores(s, i); > System.out.println(s + i); > > } > > private static void mudeOsValores(String s, int i) { > s = "outroValor"; > i = 2; > } > > } > > Ricardo Munhoz Santiago > > --- Wild Boar Wannabe <[EMAIL PROTECTED]> > wrote: > > > > Perae !!! Eh claro que refletira as mudancas !!! > > Apos > > ser chamado o metodo mudeOsValores() o inteiro e a > > String mandados por parametro terao seus valores > > mudados !!! Ou entao eu tou louco !!! Por que sempre > > foi assim pra mim ... > > > > --- Ricardo Santiago <[EMAIL PROTECTED]> > > escreveu: > > > > 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 > > > === message truncated === > > > __________________________________________________ > 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 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] > ------------------------------------------------------------------------- > > ------------------------------ 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] -------------------------------------------------------------------------