java本地方法区底层,解密JVM虚拟机底层原理【 本地方法栈】

前言

文章奔着简洁易懂的形式去写,不会有很多花哨的废话,尽可能简明扼要的描述清楚想要表达的一些东西,如果你想深入了解JVM底层,不妨花几分钟仔细看看,本节说说本地方法栈

之前说过了 程序计数器 虚拟机栈 特点以及作用 今天接着说 本地方法栈

本节简单易懂,仔细观看

声明: 我们再说Java内存结构时,一直在说,栈、堆、方法区 但是殊不知 栈又分为 虚拟机栈 和 本地方法栈

先来看看本地方法栈的图片

4d86fd3f1615966d8789360d5985160b.png

什么意思呢?

就是Java虚拟机在调用本地方法时,需要给本地方法提供的一块空间

什么又是本地方法呢?

就是那些 不是由Java代码编写的方法

科普,因为Java代码有限制,有些情况下不能和操作系统底层进行交互,所以就需要由C 或 C++ 编写的本地方法来与操作系统打交道

所以本地方法执行时候所使用的就是本地方法栈

举例

这样的本地方法其实是很多的,但有些同学说我没见过这些本地方法啊?或者说什么样的才是称为本地方法呢? 带大家看下

object 是所有Java的父类

8a1da75b1b46d20df20cee3a2799b903.png

可以看到object的clone() 克隆方法就是做一个对象的克隆 可以看到修饰符是native 可以看到native修饰的方法是没有方法实现的,他都是由底层C或者C++ 进行实现的 然后Java代码间接的调用 native 方法, 通过本地native方法的接口,间接的去调用底层实现

这样的方法其实很多很多,

hashCode

f5a9d16aea2d1885aee52d4ffe1d24ec.png

notify 和 notifyAll

28ea328609a26395054105d543fc9fc4.png

这就是本地方法栈的作用: 用来给本地方法的运行提供空间。

本地方法栈讲解到此,之后接着说 堆

希望同仁志士,前来参考以及指点!共同进步,发扬文化精神!转载请标明出处!

感觉不错的点个赞关注一下吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值