1. jvm堆与栈的基本区别:
jvm堆是存世单位 jvm栈是运行单位.
JVM堆 解决的是数据的存储问题,也就是数据放在哪,怎么放.
JVM栈 解决的是程序的运行,即程序如何执行,也可以说是数据的处理.
在java中一线程会有一个相应的想成jvm栈与之对应,因为每个线程的处理逻辑不一样,所以需要一个独立的线程居民栈 jvm堆是线程共享的,jvm栈里面都是与当前线程有关的信息.
2. jvm堆与栈中分别存储什么
jvm堆中存储的是对象,jvm栈中存储的是基本类型和对象的,一个对象的大小是不可估计的,亦可以是动态变化的,但是jvm栈中只保存了一个对象的引用只有4byte大小(这也是jvm堆和栈分离的好处)