当前位置:  技术问答>java相关

谁给解释一下native这个关键字

    来源: 互联网  发布时间:2015-11-07

    本文导语:  同上,立即结贴 | java语言是运行在虚拟机上的, java又是不允许直接访问硬件的, (也就是java安全性的体现) 而java想要做一些例如绘图、画线之类的要去操作硬件的事情的话, 必然要用到...

同上,立即结贴

|
java语言是运行在虚拟机上的,
java又是不允许直接访问硬件的,
(也就是java安全性的体现)

而java想要做一些例如绘图、画线之类的要去操作硬件的事情的话,
必然要用到底层一些的调用。
这就引出了native的关键字!

native是一个用来修饰方法的关键字!
用它修饰的方法,在虚拟机里都有一个与这个java方法同名的函数,
去做java想要做的事情!
也就是说:
调用到native修饰的方法,
其实就是调用虚拟机里的一个同名方法去做要做的事!
这也就是为什么native方法都没有方法体的原因!
例如Graphics类里有一个drawRect的方法。
它的定义就是:
public native void drawRect(int x, int y, int width, int height);
调用到它的时候,就是告诉虚拟机,
我要画一个根据x,y,width,height这些参数定义的矩形!
而实际起到作用去画这个矩形的,
是虚拟机里的一个名为XXXX_XXXX_drawRect的C函数
XXX使这个函数的打包路径,和import中的XXX.XXX差不多!

简单说:
其实java根本什么也没做,
做的只是一些面向对象的定义(但这些定义也够复杂)
而“干实事”的都一些虚拟机里的那些用C写成的函数!

这是我的理解,你能明白吗?:)

祝你成功!!




|
native用在类的method前面,表示这个method不是用java实现的。
/**
例如
*/
native xxxMethod();

|
method implemented in another language c/c++.....

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ STL Bitsets构造函数及成员函数解释及代码示例
  • classpath里的.;到底有什么用?能解释解释吗?
  • CentOS安装Telnet,以root用户登陆Telnet以及CentOS的各种终端解释
  • 请问java的xml解释器有哪些?怎么能在applet里用这些解释器?
  • 大虾们给我解释解释这个输出问题。这里小弟先谢了。
  • 实在是不能理解,谁能帮我解释解释!
  • 能不能帮我解释解释什么是EJB?
  • 关于"symbol lookup error"问题的诡异现象,高手帮忙解释解释
  • alex 解释器 alexinterpreter
  • 地震解释软件系统 OpendTect
  • 请教高人来解释一下小弟关于poll()函数的疑惑
  • Java源代码解释器 Beanshell
  • 这个"."怎么解释?
  • 高手帮忙解释
  • 请详细解释javamail里的“收件人类型”的CC,TO,BCC的意义???
  • linux中/dev下都是些什么文件啊?大侠们谁可以帮我解释一下?
  • alex 解释器 alexinterpreter iis7站长之家
  • 数字电视CA卡解释模块 OSCam
  • markdonw解释器 sundown
  • Brainfuck编译器和JIT解释器 bfc
  • Scheme Lisp 解释器 Subs


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3