• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Jeanne Boyarsky
  • Ron McLeod
Sheriffs:
  • Paul Clapham
  • Liutauras Vilda
  • Devaka Cooray
Saloon Keepers:
  • Tim Holloway
  • Roland Mueller
Bartenders:

Grabage Collection

 
Ranch Hand
Posts: 305
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello,

Can you pl spare a moment and let me know :-

1. Is every new call will make a new object?
2. or there will be only location reference value change?
3. WHat will happene if GC gets called?( Just a assumption that it gets activcated after first time we make the tt null)

regards,
Arun

 
Ranch Hand
Posts: 1272
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
In your example, three separate objects are created. After the third object is created, the first two would be eligible for garbage collection.

The Garbage Collector in your jvm works on its own cycle, periodically looking for eligible objects. If your program runs short of storage, the Garbage Collector will make an extra pass to try to save you from program termination. System.gc() simply asks the Garbage Collector to make a collection pass. The jvm can either do this or do nothing. The Sun doc suggests that Sun's jvm's will usually act on your request. Sun even suggests that you can run System.gc() repeatedly until no more memory is recovered.

The main reason for you to call System.gc() is to prevent garbage collection, which takes a certain amount of cpu time, from happening just when a time-critical piece of code is running. However, the execution delay from a garbage collection pass on a modern CPU is very small. System.gc() is also the basis for many exam questions, so it's good to know it even if you never need it in your work.
[ October 23, 2004: Message edited by: Mike Gershman ]
 
Bartender
Posts: 1844
Eclipse IDE Ruby Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


Just to be explicit, the object created on line 4 is eligible for garbage collection after line 8 has finished. The object created on line 8 is eligible for garbage collection after line 11 has finished.
 
Enjoy the full beauty of the english language. Embedded in this tiny ad:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
reply
    Bookmark Topic Watch Topic
  • New Topic