企业网站推广方案设计,ppt做视频的模板下载网站有哪些内容,株洲在线,做外贸如何选择网站1.JVM运行时数据区域的划分a.程序计数器(Program Counter Register)一块较小的内存空间#xff0c;可以看作是当前线程所执行的字节码的行号指示器。每个线程拥有独立的一个计数器#xff0c;如果当前执行的是Native方法#xff0c;则计数器值为空。b.JVM栈(Java Virtual Ma…1.JVM运行时数据区域的划分a.程序计数器(Program Counter Register)一块较小的内存空间可以看作是当前线程所执行的字节码的行号指示器。每个线程拥有独立的一个计数器如果当前执行的是Native方法则计数器值为空。b.JVM栈(Java Virtual Machine Stack)描述Java方法执行的内存模型每个方法在执行的同时都会创建一个栈帧(Stacks Frame)用于存储局部变量表操作数栈动态链接方法出口等信息。每一个方法从调用直至执行完成的过程就对应一个栈帧在JVM栈中入栈到出栈的过程。c.本地方法栈(Native Method Stack)与JVM栈发挥的作用非常相似区别不过是JVM栈为JVM执行Java方法服务而本地方法栈为JVM使用到的Native方法服务。d.Java堆(Java Heap)Java堆是被所有线程共享的一块内存区域在JVM启动时创建。所有的对象实例以及数组都要在这里分配内存但是随着JIT编译器的发展渐渐变得不是那么绝对了。e.方法区(Method Area)存储已被JVM加载的类信息常量静态变量即时编译器编译后的代码等数据。虽然JVM规范把方法区描述为堆的一个逻辑部分但它却有一个别名叫做Non-Heap。f.运行时常量池(Runtime Constant Pool)方法区的一部分。Class文件中除了有类的版本字段方法接口等描述信息外还有一项是常量池用于存放编译器生成的各种字面量和符号引用。g.直接内存(Direct Memory)不是JVM运行时数据区的一部分也不是JVM规范中定义的内存区域。例如JDK1.4中新引入的NIO(New Input/Output)类一种基于通道与缓冲区的I/O方式可以使用Native函数库直接操作堆外内存然后通过存储在Java堆中的DirectByteBuffer对象作为这块内存的引用避免了在Java堆和Native堆中来回复制数据。