栈空间:
1. 栈是方法执行的内存模型,用栈存储方法执行的信息是再合适不过了。每个方法被调用都会创建一个栈帧(存储局部变量,操作数,方法出口等)。
2. JVM为每一个线程创建一个栈,用于存放该线程执行方法的信息。
3. 栈属于线程私有,不能实现线程间的共享!
4. 栈的存储特性是“先进后出,后进先出”
5. 栈是由系统自动分配,速度快!栈是一块连续的内存空间。
栈主要是用来存放对象的,主要是用来执行程序的。相对于堆,栈的存取速度更快,但栈的大小和生存期必须是确定的,因此缺乏一定的灵活性。
而堆却可以在运行时动态的分配内存,生存期不用提前告诉编译器,但这也导致了其存取速度的缓慢。
堆空间
方法区