【JVM】本地方法接口及本地方法栈

本文介绍了Java的本地方法,包括其定义、在Java虚拟机中的作用,以及栈容量限制可能导致的异常。讨论了本地方法在当前开发中的减少趋势,尤其是在企业级应用中,更多转向硬件无关的场景。
摘要由CSDN通过智能技术生成

文章目录

1. 概述

本地方法:简单来讲,一个Native Method就是一个Java调用非Java代码的接口,主要用来调用C/C++代码

本地方法栈:Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用

  • 本地方法栈允许被实现成固定或者是可动态扩展的内存的大小(在内存溢出方面是相同的)
    • 如果线程请求分配的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个stackOverflowError异常
    • 如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈,那么Java虚拟将会抛出一个outOfMemoryError异常
    • 它的具体做法是Native Method Stack中登记native方法,在Execution Engine执行时加载本地方法库

2. 现状

目前该方法使用的越来越少了,除非是与硬件相关的应用,比如通过Java程序驱动打印机或者Java系统管理生产设备,在企业级应用中已经比较少见

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值