1. A method for reusing an object for use with an application program, comprising: a reference detection step of using a computer processor to detect that said application program stops referring to said object; wherein said reference detection step is configured to make said object revivable by linking the object with a second object having a special finalizer such that the link is a component of the second object; an update determining step of determining that the object is an update candidate if the object is linked from a field in the application program, or a reference to the object is outside a range for analysis; an update step of updating said object without storing a reference to said object; an update detection step of detecting that said object is updated by said application program; a reuse decision step of deciding to reuse said object in response to detecting no update of said object and reusing said object in response to the field in the application program referring to said object; and a reusing step of making said object reusable in response to an end of referring to said object and a decision to reuse said object, and reusing said object for a plurality of threads by using local variables of each of the plurality of threads without reusing said object across the plurality of threads.