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