本地方法栈与JVM Stack所发挥的作用是非常相似的,区别只是JVM Stack为虚拟机执行Java方法服务,而本地方法栈是为虚拟机使用到的Native方法服务。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、
成都做网站、天涯网络推广、
小程序开发、天涯网络营销、天涯企业策划、天涯品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;
创新互联为所有大学生创业者提供
天涯建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
在虚拟机规范中对本地方法栈中方法使用的语言、方式、数据结构没有强制规定要使用哪一种。甚至有的虚拟机(如HotSpot)直接将本地方法栈和JVM Stack合二为一。与JVM Stack一样,也会抛出StackOverflowError和OutOfMemoryError异常。
对大多数应用来说Java堆(Java Heap)是JVM所管理的内存中的一块。该区的唯一目的就是存放对象实例几乎所有的对象实例都在这里分配内存。
在实现时既可以是固定大小的也可以扩展,不过主流的虚拟机都是按照可扩展来实现的(-Xmx和-Xms)。如果堆中没有内存来完成实例分配,并且堆无法再扩展时就会抛出OutOfMemoryError。
与Java Heap一样方法区是各个线程共享的内存区域,它主要用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然JVM规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫Non-Heap(非堆)目的应该是与Java Heap分区来的。
Java虚拟机规范对方法区的限制非常宽松的也可以选择不实现垃圾收集。垃圾收集行为在本区是比较少出现的但非数据进入方法区就如永久代的名字一样“永久”存在了。这个区域的内存回收主要是针对常量池的回收和对类型的卸载这部分区域的回收确实是有必要的。
分享名称:虚拟机本地方法
新闻来源:
http://cdweb.net/article/checgp.html