1、
栈:-Xss
堆:
-Xms:堆的最小值
-Xmx: 堆的最大值
-Xmn:新生代的大小
-XX:NewSize:新生代的最小值
-XX:MaxNewSize:新生代的最大值
2、堆和栈的区分
栈 | 堆 | |
功能 | 以栈帧的方式存储方法调用的过程,并存储方法调用过程中基本数据类型的变量(int,short,long,byte、float、double、boolean、char等)以及对象的引用变量,其内存分配在栈上,变量除了作用域就会自动释放; | 堆内存用来存储Java中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都会存储在堆内存中; |
线程独享还是共享 | 栈内存归属于单个线程,每个线程都会有一个栈内存,其存储的变量只能在其所属线程中可见,即栈内存可以理解成线程的私有内存 | 堆内存中的所有对象对所有线程可见。堆内存中的对象可以被所有线程访问。 |
内存大小 | 栈的内存要远远小于堆的内存 | 栈的深度是有限制的,可能发生StackOverFlowError问题。 |