OutOfMemoryError: "Thrown when the Java Virtual Machine cannot allocate an object because it is out of memory, and no more memory could be made available by the garbage collector." (Ref: API.)
"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer sscce.org
By default, the JVM allows only 64MB of memory to be used. If this memory is nearly exhausted, the JVM tries to garbage collect as much memory as possible. If there still isn't enough memory, then the error is thrown.
Note that the error is never thrown if the JVM can prevent it.
You can assign more memory to the JVM using the -Xms and -Xmx parameters; for instance, if you use -Xmx128m (note the m at the end for MB, if you omit it it will use 128 bytes!) it will allow 128MB of memory to be used. These parameters must come before the main class name, otherwise it will be treated as a parameter to the Java program.