本地方法栈及native方法
来源:互联网 发布:java相关文献 编辑:程序博客网 时间:2024/05/18 13:46
最近开始看《深入理解Java虚拟机》,确实是本宝书。
看到虚拟机栈和本地方法栈的区别的时候有点疑惑,因为本地方法栈为虚拟机的Native方法服务。以下转载一篇关于native方法的介绍:
http://blog.csdn.net/wike163/article/details/6635321
————————————分 割 线——————————
今天花了两个小时把一份关于什么是Native Method的英文文章好好了读了一遍,以下是我依据原文的理解。
一. 什么是Native Method
这些方法的声明描述了一些非java代码在这些java代码里看起来像什么样子(view).
标识符native可以与所有其它的java标识符连用,但是abstract除外。这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这些方法无实现体。native与其它java标识符连用时,其意义同非Native Method并无差别,比如native static表明这个方法可以在不产生类的实例时直接调用,这非常方便,比如当你想用一个native method去调用一个C的类库时。上面的第三个方法用到了native synchronized,JVM在进入这个方法的实现体之前会执行同步锁机制(就像java的多线程。)一个native method方法可以返回任何java类型,包括非基本类型,而且同样可以进行异常控制。这些方法的实现体可以制一个异常并且将其抛出,这一点与java的方法非常相似。当一个native method接收到一些非基本类型时如Object或一个整型数组时,这个方法可以访问这非些基本型的内部,但是这将使这个native方法依赖于你所访问的java类的实现。有一点要牢牢记住:我们可以在一个native method的本地实现中访问所有的java特性,但是这要依赖于你所访问的java特性的实现,而且这样做远远不如在java语言中使用那些特性方便和容易。
如果一个含有本地方法的类被继承,子类会继承这个本地方法并且可以用java语言重写这个方法(这个似乎看起来有些奇怪),同样的如果一个本地方法被fianl标识,它被继承后不能被重写。
本地方法非常有用,因为它有效地扩充了jvm.事实上,我们所写的java代码已经用到了本地方法,在sun的java的并发(多线程)的机制实现中,许多与操作系统的接触点都用到了本地方法,这使得java程序能够超越java运行时的界限。有了本地方法,java程序可以做任何应用层次的任务。
二.为什么要使用Native Method
三.JVM怎样使Native Method跑起来:
http://blog.csdn.net/qq_28885149/article/details/52672475
- 本地方法栈及native方法
- JAVA native 本地方法
- native本地方法
- java本地方法:native方法
- JVM学习笔记(一)——本地方法栈及native方法
- react-native json 上传本地图片及网络图片方法
- Java Native Method (本地方法)
- JAVA本地方法 native method
- Java native 本地方法调用
- JVM学习笔记-本地方法栈(Native Method Stacks)
- java native interface(java 本地方法调用)
- java 中本地方法调用---native关键字
- java native关键字(java本地方法)
- java中 本地方法 Native Method
- 什么是java本地方法(Native Method)
- React Native:JS调用Android本地方法
- Native方法及JNI实例
- native 方法
- 《Hibernate学习笔记三》:联合主键的映射
- 设计模式——代理模式
- TypeError: object() takes no parameters
- 高德地图基本显示
- Kafka学习整理三(borker(0.9.0及0.10.0)配置)
- 本地方法栈及native方法
- 嵌入式Linux初始化QAT失败 及 问题 解决
- 微信开发最重要的一步(服务器配置)
- 侧滑
- ServercnxnFactory启动
- pdf.js 在连续三天的坑当中终于趟出来了
- android Retrofit 注意事项
- Image onload 事件
- LintCode 两数之和