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

Responder a