1. A system for optimistic creation of thread local objects in a virtual machine environment, comprising: a virtual machine for executing a software application; a memory space for use by the virtual machine in storing software objects and pointers as part of the software application, wherein the memory space is divided into a global heap and a plurality of thread local heaps; a heap maintaining logic that maintains the global heap and the plurality of thread local heaps in a state suitable for efficient garbage collecting, and a garbage collector that collects the thread local heaps in parallel with only stop-the-world pauses for the global heap.