java之运行时内存

1.概念:

       一个java程序从编译到执行,大概经历过4个步骤,编译成字节码,用类的加载器进行加载,分配内存,引擎执行,而内存的如何分配,是我们平时对程序进行调优的主要对象。

2.有几个区域:

       大体来说分为2个,线程共享和线程独享,线程共享又分为方法区和堆,线程独享分为程序计算器,栈,方法栈。

3.逐一介绍:

       1.栈:

       众所周知,栈是一个先进后出的数据结构,在java中是用来存储局部变量的,你有想过为什么这个区叫栈,而不叫队列,不叫链表呢?据我所了解,栈里面存储着叫做栈帧的东西,这个东西又分别由4个东西组成,局部变量表,操作数栈,方法出口,动态链接,大概是这样:

java之运行时内存_第1张图片

 然后我们来执行一段代码:

java之运行时内存_第2张图片

然后我们通过javap来反编译成我们看的懂的字节码:

你可能感兴趣的:(java)