There's basically no difference between -Xss and -XX:ThreadStackSize, exceptthat the former dates before HotSpot became the default JVM in Sun's JDK,where as the latter is an internal VM flag of HotSpot. In effect, the formeris support in a lot of other JVMs, but the latter is specific to HotSpot.As an historical aside, the command line arguments for Sun JDK 1.0.x and1.1.x had these:-ssset the C stack size of a process-oss set the JAVA stack size of a processThese arguments got deprecated by -Xss and -Xoss in later versions of JDK.Non-internal flags either get processd by the java launcher (such as-server, -client, -verbosegc, etc.) or get converted into VM internal flagsby HotSpot. See hotspot/src/share/vm/runtime/arguments.cpp for details.For example, see this version:the launcher part: lines 1052 - 1058,and the VM part: lines 2227 - 2240.As you can see, -Xss gets converted into ThreadStackSize before the VM getsto use it.If the user did specify -ss or -Xss in command line arguments, that'll getpicked up directly by the launcher to run the main Java thread. Otherwise,the launcher asks the VM for a preferred stack size, and HotSpot will returnThreadStackSize, see here: lines 3286 - 3295.That should explain how they've been implemented to be basically equivalentin HotSpot.One thing, though: because the -Xss/-XX:ThreadStackSize argument is handledby the VM, *after* the primordial thread has been created, so they won'tcover the stack size of the primordial thread. In order to control stacksize correctly, Oracle/Sun's JDK doesn't run Java code in the primordialthread. See this bug: If you ever felt the function "ContinueInNewThread" in the launcher wasweird, that's the fix for this issue, so that Java code doesn't get run inthe primordial thread in HotSpot.By the way, I also want to know whether the java thread stack is equivalent> to the native thread stack? The stock HotSpot VM (the one in Oracle's Java SE JDK and OpenJDK) uses thesame stack for Java and native methods for a Java thread; Java frames andnative frames can be mixed together in such a stack.-Xss/-XX:ThreadStackSize controls the whole stack's size for Java threads.Because of this, -Xoss is simply ignored by HotSpot -- there's no separatestack to set the size for.There are some variants of HotSpot VM that does use a separate interpreterstack, e.g. Azul's version. See this post from Cliff Click for more detailsof the Azul implementation: