1.1本地方法栈
来源:互联网 发布:淘宝百阅街怎么下载 编辑:程序博客网 时间:2024/05/18 20:47
[last updated :2016/2/8] 未完成
在上一讲(1. JVM运行时数据区)Topic 1中简略谈到本地方法栈。本文将通过以下几个话题来进一步讨论本地方法栈。
- Topic 1. 本地方法栈的功能?
- Topic 2. 什么是本地方法?为什么要使用本地方法?
- Topic 3. 本地方法是如何工作的?
- Topic 4. 怎样使本地方法在JVM中跑起来?
Topic 1. 本地方法栈的功能?
为线程私有,功能和虚拟机栈非常类似。线程在调用本地方法时,来存储本地方法的局部变量表,本地方法的操作数栈等等信息。
Topic 2. 什么是本地方法?为什么要使用本地方法?
简单地讲,一个本地方法是这样一个方法:该方法的实现由非java语言实现,比如C语言实现。很多其它的编程语言都有这一机制,比如在C++中,你可以告知C++编译器去调用一个C语言编写的方法。
我们知道java是高级编程语言,当对一些底层的如操作系统或某些硬件交换信息时,我们使用java来编程实现起来不容易,再者使用java来编程效率也很低下。这就不得不需要调用本地方法来解决这一问题。
Topic 3. 本地方法是如何工作的?
就是当一个线程调用一个本地方法时,本地方法又回调虚拟机中的另一个Java方法。这幅图展示了java虚拟机内部线程运行的全景图。一个线程可能在整个生命周期中都执行Java方法,操作他的Java栈;或者他可能毫无障碍地在Java栈和本地方法栈之间跳转。 该线程首先调用了两个Java方法,而第二个Java方法又调用了一个本地方法,这样导致虚拟机使用了一个本地方法栈。图中的本地方法栈显示为 一个连续的内存空间。假设这是一个C语言栈,期间有两个C函数,他们都以包围在虚线中的灰色块表示。第一个C函数被第二个Java方法当做本地方法调用, 而这个C函数又调用了第二个C函数。之后第二个C函数被第二个Java方法当做本地方法调用,而这个C函数又调用了第二个C函数。之后第二个C函数又通过 本地方法接口回调了一个Java方法(第三个Java方法)。最终这个Java方法又调用了一个Java方法(他成为图中的当前方法)
Topic 4. 怎样使本地方法在JVM中跑起来?
1 1
- 1.1本地方法栈
- 本地方法栈
- 本地方法栈及native方法
- 本地方法
- 虚拟机栈和本地方法栈溢出
- 虚拟机栈和本地方法栈溢出
- 虚拟机栈和本地方法栈溢出
- 虚拟机栈与本地方法栈
- 虚拟机栈和本地方法栈溢出
- java内存区域-本地方法栈
- JVM6:Jvm程序计数器,Java栈,本地方法栈,本地方法接口
- 方法栈和本地方法栈内存溢出异常测试
- 栈、堆、方法区、本地方法区、寄存器
- SVN本地设置方法
- 数据本地缓存方法
- JAVA本地方法
- JAVA调用本地方法
- 获取本地IP方法
- 安卓开发——如何让控件充满剩余父类容器
- 面试笔试杂项积累-leetcode 171-175
- 机器学习笔记(一)——环境安装
- HDU——1061Rightmost Digit(高次方,找规律)
- lasrevarTredronIeerTyraniB.94
- 1.1本地方法栈
- 游戏服务端究竟解决了什么问题?
- STC15系列4个串口的使用库函数
- Delphi 中的字符串
- u-boot-2016.01移植笔记之先让u-boot可以编译成功以及添加2440单板
- 嵌入式Linux系统的电子书阅读器项目3——Encode & Font System
- 学习activity笔记
- Linux 中的权限 -- 0755 和 0644
- lol空白名