1. 在java虚拟机规范中,定义了在虚拟机栈和本地方法栈中会产生 StackOverflowError内存管理
2. 虚拟机栈和本地方法栈通常就是咱们说的java内存管理中的栈class
3. 虚拟机栈和本地方法栈是线程之间的独立内存,每个线程在建立时,java虚拟机都会给该线程分配一块独立的内存区域,通常将此内存区域划分为虚拟机栈,本地方法栈,程序计数器变量
4. 虚拟机栈中存储了方法执行时相关信息,每一个方法在调用时都会在虚拟机栈中建立一个方法帧,方法帧中包含了局部变量,操做数,动态连接,方法出口等信息
5. 本地方法栈和虚拟机栈基本相同,不一样的是本地方法栈是针对线程中的native方法
6. 程序计数器包含了一个程序执行指针,指向了字节码当前执行的行数
7. 在java虚拟机规范中,虚拟机栈和本地方法栈都会出现StackOverflowError和OutofMemoryError,程序计数器是java虚拟机中惟一一块不会产生error的内存区域
8. StackOverflowError表明的是,当栈深度超过虚拟机分配给线程的栈大小时就会出现此error
9. OutofMemoryError表明的是,当再申请新的内存时,虚拟机分配给线程的内存大小中没法再分配新的内存,就会出现此error
10. -Xss1024M虚拟机参数能够设置虚拟机分配给每一个线程的内存大小,程序计数器占很小的内存(能够忽略),通常此内存和线程栈内存相等
11. 在HotSpot虚拟机中,是将虚拟机栈和本地方法栈合二为一的