1. A computer-implemented method for optimizing memory usage in a virtual machine having a memory heap, comprising: determining whether or not a string cache file exists at a beginning of a start-up process; in response to the determining that the string cache file does not exist at the beginning of the start-up process: creating a new string and adding the new string to an interned strings table; scanning the memory heap at the end of the start-up process of the virtual machine to identify duplicate strings associated with the virtual machine; and storing the identified duplicate strings in a string cache file; and in response to the determining that the string cache file exists at the beginning of the start-up process: adding string objects from the string cache file to the interned strings table; determining whether or not a string to be created is in the interned strings table; in response to the determining that the string to be created is in the interned strings table, returning a reference to the string to be created in the interned strings table; and in response to the determining that the string to be created is not in the interned strings table, creating a new string in the memory heap.