JVM本地方法

本地方法接口

NAtive Method就是一个java调用非java代码的接口

本地方法栈(Native Method Statck)

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

  • 本地方法栈,也是线程私有的。

  • 允许被实现成固定或者是可动态扩展的内存大小。(在内存溢出方法是相同的)

    • 如果线程请求分配 的栈容量超过本地方法栈允许的最大容量,Java虚拟机将会抛出一个StackOverflowError异常。

    • 如果本地方法栈可以动态扩展,并且在尝试扩展的时候无法申请到足够的内存,或者在创建新的线程时没有足够的内存去创建对应的本地方法栈 ,那么Java 虚拟机将会抛出一个OutOfMemoryError异常。

  • 本地方法是使用C语言实现的。

  • 它的具体做法是做Native Method Stack中登记native方法,在Execution Engine执行时加载本地方法库。

  • 当某个线程调用一个本地方法时,它就进入了一个全新的并且不再受虚拟机限制的世界。它和虚拟机拥有同样的权限。

    • 本地方法可以通过本地方法接口来访问虚拟机内部的运行时数据区。

    • 它甚至可以直接使用本地处理器中的寄存器。

    • 直接从本地内存的堆中分配任意数量的内存。

  • 并不是所有的JVM都支持本地方法。因此 Java虚拟机规范并没有明确要求本地方法栈的使用语言,具体实现方式,数据结构等。如果JVM产品不打算支持native方法,也可以无需实现本地方法栈。

  • 在Hotspot JVM中,直接将本地方法栈和虚拟机栈合二为一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/562755.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jmeter超高并发报错解决方法

1、比如jmeter设置并发量为5000,运行后报错socket closed。原因是客户端与服务端做了三次握手之后,后面不需要握手了,但是jmeter没有这个功能,5000个并发每次发接口请求都是独立的,jmeter端口处理不了这么大量的请求&a…

tcp 协议详解

什么是 TCP 协议 TCP全称为 “传输控制协议(Transmission Control Protocol”). 人如其名, 要对数据的传输进行一个详细的控制。TCP 是一个传输层的协议。 如下图: 我们接下来在讲解 TCP/IP 协议栈的下三层时都会先解决这两个问题: 报头与有效载荷如何…

【黄啊码】如何用GPT和向量数据库做问答型AI

知识库服务依赖该数据库,Embedding 形式个性化训练 ChatGPT,必不可少的就是向量数据库 因为 qdrant 向量数据库只支持 Docker 部署,所以需要先安装好 Docker 服务。 命令行安装 拉取镜像 docker pull qdrant/qdrant 运行服务 docker run -…

分布式组件 Nacos

1.在之前的文章写过的就不用重复写。 写一些没有写过的新东西 2.细节 2.1命名空间 : 配置隔离 默认: public (默认命名空间):默认新增所有的配置都在public空间下 2.1.1 开发 、测试 、生产:有不同的配置文件 比如…

使用Intellij idea编写Spark应用程序(Scala+Maven)

使用Intellij idea编写Spark应用程序(ScalaMaven) 对Scala代码进行打包编译时,可以采用Maven,也可以采用sbt,相对而言,业界更多使用sbt。这里介绍IntelliJ IDEA和Maven的组合使用方法。IntelliJ IDEA和SBT的组合使用方法&#xf…

Day 14 JDBC

JDBC 1、简单入门 Statement2、preparedStatement3、主键回显4、批量操作5、事务6、Druid6.1 工具类V16.2 工具类V26.3 1、简单入门 Statement 步骤: 1、注册驱动 2、创建连接 3、创建 Statement对象 4、编写sql语句 并且发送sql语句获得结果集 5、解析结果集 6、释放资源 注意…

jmeter使用方法---自动化测试

HTTP信息头管理器 一个http请求会发送请求到服务器,请求里面包含:请求头、请求正文、请求体,请求头就是信息头Authorization头的主要用作http协议的认证。 Authorization的作用是当客户端访问受口令保护时,服务器端会发送401状态…

微光图像增强算法学习记录(一)

微光图像增强(LLIE)旨在恢复照明并提高微光图像的可见性,本文对阅读的文献进行记录和分享,帮助回顾和大家建立学习资料。 文献一摘要及前沿摘选主要贡献网络结构实验结论 文献二摘要 文献三摘要主要贡献网络架构实验 文献四摘要实…

C++一维数组练习oj(2)

这时上次的C一维数组练习:C一维数组练习oj-CSDN博客 这到题目我承认非常难!当然这只是我认为,因为我只学到了一维数组! 对于你们来说可能不难。 好了我不客套了。 这题我们可以将他理解为一条时间轴: 时间轴上小李每1…

分布式搜索引擎ES-RestClient查询文档快速入门

RestClient查询文档快速入门 文章目录 RestClient查询文档快速入门1.1、match_all1.2、全文检索查询1.3、精确查询1.4、复合查询-boolean query1.5、排序和分页1.6、高亮(解析查询高亮结果) 1.1、match_all package cn.mannor.hotel;import org.apache.…

深度学习pytorch——多层感知机反向传播(持续更新)

在讲解多层感知机反向传播之前,先来回顾一下多输出感知机的问题,下图是一个多输出感知机模型: 课时44 反向传播算法-1_哔哩哔哩_bilibili 根据上一次的分析深度学习pytorch——感知机(Perceptron)(持续更新…

基于python+vue的街道办管理系统flask-django-php-nodejs

在此基础上,结合现有街道办管理体系的特点,运用新技术,构建了以 python为基础的街道办管理信息化管理体系。首先,以需求为依据,根据需求分析结果进行了系统的设计,并将其划分为管理员和用户二种角色和多个主…