A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

听张孝祥老师建议。。说有点基础了,,有时间可以看一下Java的源代码。。结果在看System类的时候看到有这么一个方法:
private static native void registerNatives();
     static {
         registerNatives();
     }

请问这个方法中的native是什么意思啊?如何应用呢?

5 个回复

正序浏览
    native也是方法的关键字,是指本地方法,当在方法中调用一些不是由java语言写的代码或者在方法中用java语言,直接操纵计算机硬件时要声明为native方法。
但是,不能修饰抽象方法(abstract)和接口(interface)里的方法

    native是方法修饰符。Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。因为在外部实现了方法,所以在java代码中,就不需要声明了,有点类似于借口方法。Native可以和其他一些修饰符连用,但是abstract方法和Interface方法不能用native来修饰。
回复 使用道具 举报
java native方法是指本地方法,当在方法中调用一些不是由java语言写的代码或者在方法中用java语言
直接操纵计算机硬件时要声明为native方法。

java中,通过JNI(Java Native Interface,java本地接口)来实现本地化
Native方法一般用于两种情况:

1)在方法中调用一些不是由java语言写的代码。

2)在方法中用java语言直接操纵计算机硬件。
如果使用了native方法也就丢失了java的方便性和安全性。Native方法的执行依赖于JVM的设计者,比如

在sun的JVM中,可以通过JNI(Java Native Interface) API接口来实现本地化。
回复 使用道具 举报
java native方法是本地方法,当在方法中调用一些不是由java语言写的代码或者在方法中用java语言直接操纵计算机硬件时要声明为native方法。java中,通过JNI(Java Native Interface,java本地接口)来实现本地化。Native方法一般用于两种情况: 1)在方法中调用一些不是由java语言写的代码。2)在方法中用java语言直接操纵计算机硬件
回复 使用道具 举报
本帖最后由 李盼 于 2012-6-15 22:39 编辑

出现在这个位置,肯定是关键字了,然后我去查了下关键字的说明,是这样解释的,应该能看懂!


Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。
  可以将native方法比作Java程序同C程序的接口,其实现步骤:
  1、在Java中声明native()方法,然后编译;
  2、用javah产生一个.h文件;
  3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);
  4、将第三步的.cpp文件编译成动态链接库文件;
  5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。

也就是说这个方法是这个平台的本地方法。
回复 使用道具 举报
native  本地的意思
这种情况下就是调用本地系统的一些方法,举例子:使用IO进行文件复制、进行线程编程,最终都需要由计算机本身系统去完成,那么这些源代码中都会出现这方面的词汇,
只需要了解就可以了。
你也可以查找下JNI(Java native Interface),可以看到一些别的知识。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马