Referencia a um objeto

9 respostas
V

Blz vou tentar explicar a minha dúvida

Em primeiro eu sei que todo variável que não seja primitiva é um ponteiro, significa que o valor dela pode ser acessada de qualquer lugar da sua aplicação. (blz até ai)

Eu estava pensando em usar o Piper em java na qual me permite trocar informação de um ponto da minha aplicação para outro, mas um objeto como eu passaria a referencia de um objeto ?

Sei que existe a classe ObjectOutputStream que pode serealizar um objeto e enviar ele pela Stream mas isso não é a mesma coisa que passa a referencia, na verdade se eu fizer isso estaria “clonando” a variável o que eu não quero.

Como eu faria algo deste tipo ?

9 Respostas

B

Há várias formas:

  1. Usar um mecanismo de cache (storage chave-valor em memória). Ehcache é um deles. Na verdade no teu caso é usar data grids.
  2. Em servidores objetos são compartilhados via JNDI. Em JVMs diferentes, alguns servidores podem importar contextos JNDI remotos.
  3. MappedByteBuffer e seus primos (mas para usar com objetos já é serialização)
V

qual deles você usaria ?

e que eu to meio perdido aqui rsrs nisso

V

pelo que li o MappedByteBuffer serve para mapear a região de memoria do arquivo

B

Não tem uma resposta simples pro teu problema.

Aliás, a resposta simples é usar um servidor com um banco de dados, seja ele relacional ou um NoSQL. Isso vai ter serialização de dados de qualquer forma. É o que eu recomendaria fortemente para você que está um pouco perdido.

A resposta avançada é usar um data grid ou cache distribuido, que tem a ver com o que você quer, e se rodar na mesma máquina talvez tenha uma otimização para pegar o mesmo espaço em memória. Mas isso já é coisa de mundo enterprise para peixe grande.

O terceiro caminho é que ambas as aplicações rodem na mesma JVM, o que é dificil em aplicações desktop.

V

detalhe que não são “ambas” na verdade é “a” aplicação, somente uma aplicação rodando, na mesma máquina

V

tipo em c/c++ pode passar a referencia do objeto, a partir dessa referencia acessar ele, se java pudesse fazer a mesma coisa eu passaria pela Stream o valor da localização em memoria e acessaria ela, mas como sei que de padrão não há suporte a isso ai complica

esse seria um exemplo que resolveria o meu problema

É possível localizar uma variável onde ela está armazenada na memoria ?

V

pesquisando encontrei essa duas classe pelo nome, mas me parece que n tem nada a ver com o problema

org.omg.PortableInterceptor.ObjectReferenceFactory org.omg.PortableInterceptor.ObjectReferenceTemplate

B

Victor Gerin:
pesquisando encontrei essa duas classe pelo nome, mas me parece que n tem nada a ver com o problema

org.omg.PortableInterceptor.ObjectReferenceFactory org.omg.PortableInterceptor.ObjectReferenceTemplate

Isso é do CORBA.

V

desculpe a ignorância mas n sei nd sobre o “CORBA”, só achei que talvez pudesse ajudar rsrs

Criado 13 de julho de 2013
Ultima resposta 14 de jul. de 2013
Respostas 9
Participantes 2