title: How garbage collection determine time of garbage objects to collect and how long object is pushed from young generation to old generation?
body: <p>To optimize for this scenario, memory is managed in generations (memory pools holding objects of different ages). Garbage collection occurs in each generation when the generation fills up. The vast majority of objects are allocated in a pool dedicated to young objects (the young generation), and most objects die there.
  How GC define time for objects which not use from any objects into running program? How GC determine to move objects from young generation to old generation?</p>