IntelliJ open source
[Logo] JavaRanch » Big Moose Saloon
  Search | FAQ | Recent Topics | Hot Topics
Register / Login


Reply Bookmark it! Watch this topic JavaRanch » Forums » Java » Java in General
 
RSS feed
 
New topic
Author

Aggregation in Java

Ravi Kiran V
Ranch Hand

Joined: Apr 18, 2009
Messages: 1203

Hi

while reading an example for Aggregation .
I got with this from a site .

"My Object consists of other Objects which can live even after MyObject is destroyed ".

Now my question will this be not a memory leak ?

Aggregation: Life times of the objects are not the same, one object can live even after the other object has been destroyed.

Please Can i get a java example for the above statement .

This message was edited 1 time. Last update was at by Ravi Kiran V


I tried to change the world, but I couldn’t find the source code
Campbell Ritchie
Bartender

Joined: Oct 13, 2005
Messages: 14987

What about Strings which are coded as literals? They remain in the String pool until the class has been unloaded.
What about something which has a second reference in another class, maybe a List?
Ravi Kiran V
Ranch Hand

Joined: Apr 18, 2009
Messages: 1203

Thank you.

The first point made by you explains nice.

I tried to change the world, but I couldn’t find the source code
Campbell Ritchie
Bartender

Joined: Oct 13, 2005
Messages: 14987

You're welcome
Rob Prime
Bartender

Joined: Oct 27, 2005
Messages: 8845

Ravi Kiran V wrote:Now my question will this be not a memory leak ?

Only if the remaining references should not be there (which is a programming error), but mostly objects remain because they are still needed. That means it's not a memory leak since that means the objects are not needed at all but still use memory.

SCJP 1.4 - SCJP 6 - SCWCD 5
How To Ask Questions How To Answer Questions
Embla Tingeling
Ranch Hand

Joined: Oct 22, 2009
Messages: 237

Ravi Kiran V wrote:
My Object consists of other Objects which can live even after MyObject is destroyed ".

Now my question will this be not a memory leak ?


This is a misunderstanding. Aggregation is a design relationship. It has nothing to do with the disposal of objects when they're no longer used.

Ordinary composition describes how a class is constructed from other classes. Aggregation composition on the other hand describes the temporary relationships a class can form.

One example is a Car. A Car is constructed from of its Parts. It owns them. If a Part is misssing the Car is broken. Car forms a composition relationship with its Parts.

But a Car also can have Passengers. The Passengers aren't Parts of the Car. When a Passenger is missing the Car isn't broken. The Car doesn't own its Passengers. When they're not in the Car they're elsewhere. The relationship is temporary. Passengers come and go. Car forms an aggregation relationship with its Passengers.

Note that both are composition relationships really. A Car has Parts and it has Passengers. The difference is the duration. The relationship with Parts is forever whereas the relationship with Passengers is temporary.

This message was edited 2 times. Last update was at by uj nossnahoj

 
 
 
Reply Bookmark it! Watch this topic JavaRanch » Forums » Java » Java in General
 
RSS feed
 
New topic
hibernate profiler