1. In an object oriented programming environment, a method for reducing object instances stored in memory, the method comprising: receiving an object; searching for an equivalent object stored in a map having a plurality of entries, each entry including a key and a value; and storing the object in an entry of the map if the search is unsuccessful, the key for the entry being set to the object for causing the object to be stored as a referent of a first weak reference and the value for the entry being set to a second weak reference for storing the object as a referent of the second weak reference.