每一个线程创建一个单独的运行时堆栈,对于每一个方法调用,一个称为栈内存堆栈呗创建,所有局部变量将被创建在栈内存中,栈区域是现成安全的,因为他不是一个共享资源,与程序计数器一样,Java虚拟机栈也是线程私有的,它的生命周期与线程相同,栈空间用光了会引发StackoverflowError
创新互联公司主要从事成都做网站、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务南靖,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575局部变量表,操作数栈,指向常量池的指针
PC计数器(程序计数器)每个线程必须分开程序计数器登记,当前执行的指令一旦执行,程序计数器更新下一个指令,一块较小的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器
本地方法栈与虚拟机栈所发挥的作用是非常相似的,其区别不过是虚拟机栈为虚拟机执行Java方法,而本地方法栈则是为虚拟机使用到的native方法服务
方法区和堆方法区中存储已被虚拟机加载的类信息,,常量,静态变量,即使编译器编译后的代码等数据
堆是在虚拟机启动时创建,此内存区域的唯一目的就是存在对象实例,几乎所有的对象实例都在这里分配内存,存储的数据不是线程安全的,堆和常量池空间不足会引发OutOfMemoryError
总结:
Java有这个Java虚拟机栈,其中保存了栈帧,用来运行Java的代码,然后还有一个本地方法栈,用来执行非Java的代码,比如说C和C++,然后有一个PC计数器来指向我们的字节码,因为我想知道程序执行到哪里了,给执行引擎给予指示,那么就引入了PC计数器
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前文章:JVM各区作用-创新互联
路径分享:http://lswzjz.com/article/cooipi.html