解密JVM虚拟机底层原理【 本地方法栈】
前言
文章奔着简洁易懂的形式去写,不会有很多花哨的废话,尽可能简明扼要的描述清楚想要表达的一些东西,如果你想深入了解JVM底层,不妨花几分钟仔细看看,本节说说本地方法栈
之前说过了 程序计数器 虚拟机栈 特点以及作用 今天接着说 本地方法栈
本节简单易懂,仔细观看
声明: 我们再说Java内存结构时,一直在说,栈、堆、方法区 但是殊不知 栈又分为 虚拟机栈 和 本地方法栈
先来看看本地方法栈的图片
什么意思呢? 就是Java虚拟机在调用本地方法时,需要给本地方法提供的一块空间 什么又是本地方法呢? 就是那些 不是由Java代码编写的方法 科普,因为Java代码有限制,有些情况下不能和操作系统底层进行交互,所以就需要由C 或 C++ 编写的本地方法来与操作系统打交道 所以本地方法执行时候所使用的就是本地方法栈
举例
这样的本地方法其实是很多的,但有些同学说我没见过这些本地方法啊?或者说什么样的才是称为本地方法呢? 带大家看下
object 是所有Java的父类
可以看到object的clone() 克隆方法就是做一个对象的克隆 可以看到修饰符是native 可以看到native修饰的方法是没有方法实现的,他都是由底层C或者C++ 进行实现的 然后Java代码间接的调用 native 方法, 通过本地native方法的接口,间接的去调用底层实现
这样的方法其实很多很多,
hashCode
notify 和 notifyAll
这就是本地方法栈的作用: 用来给本地方法的运行提供空间。
本地方法栈讲解到此,之后接着说 堆
上一篇 : 解密JVM虚拟机底层原理【 虚拟机栈】
希望同仁志士,前来参考以及指点!共同进步,发扬文化精神!转载请标明出处!
感觉不错的点个赞关注一下吧!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
快速实现上滑加载更多
实现方式 在智能小程序的开发过程中,经常会遇到页面列表数量较多的情况,此时可以通过【分页】加载数据,并监听页面滑动到底部时触发【上滑加载更多】,从而增加页面首屏渲染速度。 想要实现这种分页展示数据,上滑加载更多的效果,主要有以下几种方式: 使用 view自定义信息流组件 + onReachBottom 使用 scroll-view + bindscrolltolower 使用 smart-ui 中的feed信息流组件 使用 swiper + scroll-view 自定义信息流组件 + bindscrolltolower 使用 swiper + view 自定义信息流组件 + onReachBottom 使用 page-feed信息流模版 以下是具体方案中会使用到的组件或api: 组件/ api名称 描述 类型 scroll-view 滚动区域组件 原生组件 view 视图组件 原生组件 tabs 标签栏组件 原生组件 tabs-item 标签栏子项组件 原生组件 swiper 滑块视图容器 原生组件 swiper-item 滑块视图子项组件 原生组件 feed 信息流组件 扩展组件(...
- 下一篇
分布式存储开发:Curve中的内存管理
前言 Curve 实践过程中遇到过几次内存相关的问题,与操作系统内存管理相关的是以下两次: chunkserver上内存无法释放 mds出现内存缓慢增长的现象 内存问题在开发阶段大多很难发现,测试阶段大压力稳定性测试(持续跑7*24小时以上)、异常测试往往比较容易出问题,当然这还需要我们在测试阶段足够仔细,除了关注io相关指标外,还要关注服务端内存/CPU/网卡等资源使用情况以及采集的metric是否符合预期。比如上述问题mds 内存缓慢增长,如果只关注io是否正常,在测试阶段是无法发现的。内存问题出现后定位也不容易,尤其在软件规模较大的情况下。 本文主要是从开发者的角度来谈 Curve 中的内存管理,不会过度强调内存管理理论,目的是把我们在软件开发过程中对 Linux 内存管理的认知、内存问题分析的一些方法分享给大家。本文会从以下几个方面展开: 内存布局。结合 Curve 软件说明内存布局。 内存分配策略。说明内存分配器的必要性,以及需要解决的问题和具有的特点,然后通过举例说明其中一个内存分配器的内存管理方法。 Curve 的内存管理。介绍当前 Curve 软件内存分配器的选择及原因...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2配置默认Tomcat设置,开启更多高级功能