JVM (一) 初识
计算机是通过 数据 + 指令 来工作的。
程序计数器:指向当前线程所执行的字节码的行号指示器。
虚拟机栈(线程私有):存储当前线程运行方法所需要的数据、指令和返回地址。
每个方法被执行的时候都会同时创建一个栈帧(stack frame) 用户存储局部变量表、操作栈、动态链接、方法出口信息等;每一个方法被调用执行到完成的过程就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。
方法区:存放静态变量、常量和类信息是各个线程共享的内存区域
疑问? 为什么不把静态变量和常量存放在堆中
常量池:是方法区的一部分。Class文件除了类的版本、字段、方法、接口等信息,还有一个项重要信息常量池(constant pool)