java7的内存结构
程序计数器
程序计数器是一块非常小的内存空间,可以看做是当前线程执行字节码的行号指示器,每个线程都有一个独立的程序计数器,因此程序计数器是线程私有的一块空间,此外,程序计数器是Java虚拟机规定的唯一不会发生内存溢出的区域。
为什么要有这个程序计数器呢?这是因为我们的处理器在一个时刻,只能执行一个线程中的指令。但是我们的程序往往都是多线程的,这时候处理器就需要来回切换我们的线程,为了在线程切换之后回到之前正确的位置上,此时就需要一个程序计数器,这也就很容易理解了我们的每个线程都有一个自己的程序计数器来保存自己之前的状态。
- 程序计数器指定下一条需要执行的指令
- 每一个线程独有一个程序计数器
- 执行java代码时,寄存器保存当前指令地址
- 执行native方法时候,寄存器为空。
- 不会造成OutOfMemoryError情况