程序计数器和,堆 、栈、静态方法区 有什么区别呢?
栈区(stack sagment):由编译器自动分配释放,存放函数的参数的值,局部变量的值等,
2、堆区(heap sagment) : 一般由程序员分配释放,若程序员不释放,程序结束时可能由系统回收
3、全局区(静态区)(data sagment):全局变量和静态变量的存储区域是在一起的,程序结束后由系统释放。数据区的大小由系统限定,一般很大。
4、文字常量区:常量字符串就是放在这里的, 程序结束后由系统释放。
5、程序代码区:存放函数体的二进制代码。
每个线程都有一个独立的程序计数器,主要用于线程轮流切换时记录本线程执行进度的,等到下次切换到本线程时,会直接从计数器记录的位置开始执行指令(等同于当前线程执行进度的存储节点)