1. 前记
ThreadLocal到底是什么 中引出了堆内存和栈内存的关系
堆内存和栈内存都是在java的jvm中
下面来看看他们的区别和关联
2. java中堆和栈的区别
堆 | 栈 | |
---|---|---|
存储内容 | 存储Java中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都存储在堆内存中。 | 存储局部变量和方法调用 |
独有OR共享 | 所有线程可见 | 归属于单个线程 |
异常错误 | java.lang.OutOfMemoryError | java.lang.StackOverFlowError |
空间大小 | -Xms 设置堆开始的大小 -Xmx 设置堆的最大值 | -Xss 设置栈的内存大小 |