JVM学习笔记——第一篇

1、

栈:-Xss
堆:
-Xms:堆的最小值
-Xmx:   堆的最大值
-Xmn:新生代的大小
-XX:NewSize:新生代的最小值
-XX:MaxNewSize:新生代的最大值

2、堆和栈的区分

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

 

 

你可能感兴趣的:(JVM)