基础知识: 关于堆和栈,堆和栈是程序运行的关键,关于堆和栈的定义和解释可自行搜索,我比较认可以程序运行过程中他们扮演的角色作为对比的点:堆是存储的单位,而栈是程序运行时的单位.栈解决的是程序的运行问题,即程序如何运行,如何处理数据.堆解决的是存储问题,即数据存储在哪里,怎么存储. 程序中每启动一个线程就有一个栈与之对应.因为每个线程执行的逻辑不同,所以需要独立的栈来描线程如何运行.而堆是所有线程共享的. 栈之所以是运行时单位,主要是因为栈中保存的都是当前线程中,包括局部变量,程序运行状态和方法返…