There are hundreds of JVM options available. Basically they are classified into three types:
- Standard Options,
- Non-standard X options,
- Non-standard XX options,
List of few standard options: [To see complete list execute the command "java" without any option]
-client to select the "client" VM -server to select the "server" VM -cp <class search path of directories and zip/jar files> -classpath <class search path of directories and zip/jar files> A ; separated list of directories, JAR archives, and ZIP archives to search for class files. -D<name>=<value> set a system property -version print product version and exit -showversion print product version and continue -X print help on non-standard options`
List of few non-standard X options: [To see complete list execute the command "java -X"]
-Xincgc enable incremental garbage collection -Xms<size> set initial Java heap size -Xmx<size> set maximum Java heap size -Xss<size> set java thread stack size -Xprof output cpu profiling data -Xmixed mixed mode execution (default) -Xint interpreted mode execution only
List of few non-standard XX options: [Complete list available here]
-XX:InitialHeapSize=<size> set initial Java heap size. Same as -Xms<size>. -XX:MaxHeapSize=<size> set maximum Java heap size. Same as -Xmx<size>. -XX:+PrintFlagsFinal prints all JVM options passed. -XX:+UnlockDiagnosticVMOptions opens up lot more VM options.
If you want to enhance your knowledge in JVM options, please refer this blog. The link is just part 1 out of 8. Find out and read other parts as well.