对比JDK1.7,JDK1.8在运行时的内存分配上进行了调整.本篇对JDK1.8版本进行简要介绍. 先以一张图片描述运行时内存: 程序计数器 记录当前线程执行的字节码行号.如果执行的是native方法,值为null. 虚拟机栈 每一个线程执行时,都对应有一个虚拟机栈,生命周期与线程相同.一个虚拟机栈有一个一个的栈帧组成,每个java方法被调用时都会创建一个栈帧,然后入栈,方法结束后出栈.一个栈帧由局部变量表,操作数栈,动态链接和方法出口信息组成. 如果方法中出现递归调用死循环,或者栈帧大小超过虚