Conhecedores HIBERNATE

3 respostas
domingosbernardo

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

3 Respostas

B

Na verdade, a pergunta não é simples, ela é uma das maiores pegadinhas que os professores gostam de colocar nas aulas de java, por sinal :stuck_out_tongue:

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

leosouzabh

Esse ID citado acima tem alguma relação com aquele metodo hashCode??

B

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.

Criado 7 de julho de 2006
Ultima resposta 14 de jul. de 2006
Respostas 3
Participantes 3