| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2006 10:16:03
|
domingosbernardo
Debugger
Membro desde: 02/05/2006 09:52:22
Mensagens: 57
Localização: São Paulo
Offline
|
Olá, bom dia a todos,
Tenho estudado Java a algum tempo, e uma das dúvidas que tirei aqui, foi a forma como Java passa argumentos. No caso como ja foi esclarecido aqui mesmo, "Java sempre passa argumentos por valor", o que entendo e realmente é verdade.
Só que as literaturas as vezes deixam as pessoas confusas.
Estou lendo o livro HIBERNATE em ação, de Christian Bauer e Gavin King, por indicação do próprio site GUJ.
É ai que vem o problema.
desculpe a todos mais sou obrigado a colocar a referência :
Capitulo 3, pagina 123, topico : Entidade e tipos de valor;
O autor escreve :
" Em Java, todas as classes têm padrão de igualdade: todos os objetos têm sua própria identidade e ciclo de vida, e todas as instâncias de classe são passadas por referência. Somente tipos primitivos são passados por valor."
pergunto a vc´s, quando trabalhamos com ORM, utilizando HIBERNATE, vai ocorrer o que esta escrito acima ?
foi um erro de digitação do livro ou tradução ? ou não entendi o enredo do autor ?
obs: por favor, não quero irritar ninguém, apenas coloco a informação para entender melhor as coisas, sendo assim desculpe minha limitação.
obsII: escrevo a observação para aqueles que derepente fiquem P. da vida comigo pelo fato de postar uma pergunta talvez muito simples.
atenciosamente
|
Domingos Bernardo Gomes Santos
Laboratório de Sensores Ópticos - LSO
Departamento de Engenharia de Energia e Automação Elétricas - PEA / POLI - USP |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/07/2006 10:39:28
|
Black_Pilot
Thread.start()
Membro desde: 28/03/2004 18:37:53
Mensagens: 25
Localização: Rio de Janeiro - RJ
Offline
|
Na verdade, a pergunta não é simples, ela é uma das maiores pegadinhas que os professores gostam de colocar nas aulas de java, por sinal
Em Java os parâmetros são sempre passados por valor.
O problema é que existe um pequeno detalhe nisso. Quando você cria uma variável de um objeto, o que você tem é um "id" daquele objeto armazenado nessa variável, não o objeto ou o endereço de memória dele (como em C ou C++. Ponteiros não existem em Java).
Então, quando você passa por parâmetro essa variável, ele vai passar realmente o VALOR desse objeto, ou seja, o ID que identifica o objeto. Resumindo, na prática, você passa por referência objetos, por que você manipula esse id, que é o mesmo em qualquer contexto.
Sei que expliquei muito mal, não consegui passar a idéia corretamente. Se eu ainda não consegui te ajudar, responde aqui que eu tento de novo =)
|
Black Pilot - Estudante, estagiário, vagabundo e nas horas vagas admin do site Beco Diagonal. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2006 11:34:38
|
leosouzabh
JavaTeenager
![[Avatar]](/images/avatar/9b40aee76034c9543ceacba5df759a1d.jpg)
Membro desde: 28/03/2006 12:04:34
Mensagens: 193
Offline
|
Esse ID citado acima tem alguma relação com aquele metodo hashCode??
|
Procure sempre o melhor!! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2006 19:03:48
|
Black_Pilot
Thread.start()
Membro desde: 28/03/2004 18:37:53
Mensagens: 25
Localização: Rio de Janeiro - RJ
Offline
|
Nenhuma
Se vc olhar, debuga o seu sistema, na listagem de variáveis do eclipse, vc vai olhar lá, a variavel e do lado (ID = XX ). Aquilo é a referencia que identifica que objeto se trata para a máquina virtual.
|
Black Pilot - Estudante, estagiário, vagabundo e nas horas vagas admin do site Beco Diagonal. |
|
|
 |
|
|
|
|