1. jvm内存模型:
内存模型:
程序计数器
堆
栈
本地方法栈
方法区
2. java代码编译为class文件,由类加载器加载到jvm,然后由解释器,jit即时编译到机器码,机器码再到cpu执行
3. 程序计数器:
是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器,在Java虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成
大白话:就是存储下一条jvm指令执行地址区域,解释器靠他往下走
4. 程序计数器特点:
1) 线程私有
2)内存模型中,唯一一处不会发生内存溢出的区域
4.1 线程私有:服务器cpu是时间片机制,每个线程都是在固定的时间片内运行,到点就暂停。此时暂停后,程序计数器,就存储了,当前方法运行的位置。每个线程都由一个独立的程序计数器,互不影响,独立存储。所以称为线程私有。
4.2 不会发生内存溢出。