• 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
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

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.
 
Of course, I found a very beautiful couch. Definitely. And this tiny ad:
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic