conhecedores HIBERNATE  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
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
[WWW] [Yahoo!] [MSN]
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.
[Email] [WWW] [MSN] [ICQ]
leosouzabh
JavaTeenager
[Avatar]

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!!
[MSN]
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.
[Email] [WWW] [MSN] [ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team