     @loaded_classes = Object.create null
 
     @high_oref = 1
-    @string_pool = {}
+    @string_pool = Object.create null
     @lock_refs = {}  # map from monitor -> thread object
     @lock_counts = {}  # map from monitor -> count
     @waiting_threads = {}  # map from monitor -> list of waiting thread objects

    @jclass_obj_pool[type]

  # Returns a ClassFile object. Loads the underlying class, but does not
  # initialize it.
  load_class: (type, dyn) ->
    unless @loaded_classes[type]?
      if type instanceof types.ArrayType

        delete c.$in_progress
        class_file.methods['<clinit>()V']?.run(this)
    class_file

  # called by user-defined classloaders
  define_class: (cls, data, loader) ->
    # replicates some logic from class_lookup
    class_file = new ClassFile(data)
