关键字 native

gxifu 2010-11-30 02:55:12



public class TestNative{

public native String readTxt(int i);


}





readTxt 这方法调用什么?
...全文
93 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxifu 2010-11-30
  • 打赏
  • 举报
回复
谢谢各位的解答,现在明白了。
goldater 2010-11-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ningyingjun 的回复:]

简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。
"A native method is a Java method ……
[/Quote]

我顶
聖少俊 2010-11-30
  • 打赏
  • 举报
回复
简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。
"A native method is a Java method whose implementation is provided by non-java code."
在定义一个native method时,并不提供实现体(有些像定义一个java interface),因为其实现体是由非java语言在外面实现的
主要应该与java环境外交互,与操作系统交互,Sun's Java使用
龙心 2010-11-30
  • 打赏
  • 举报
回复
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中被访问了。

楼主所指的readTxt方法不是由java实现的,应该是用C++来实现的。

Eminas 2010-11-30
  • 打赏
  • 举报
回复
Java用static?
loveofmylife 2010-11-30
  • 打赏
  • 举报
回复
他是声明在本地,异地用其他语言实现这个方法,也就是所说的JNI
TestNative会静态导入实现这个readTxt的动态链接文件,在java端执行这个readTxt方法其实执行的是另一个语言所实现的
sunyiz 2010-11-30
  • 打赏
  • 举报
回复
native 的函数是java和其他语言联合开发时用到的(如c++)
(由c++实现)
不是在java侧实现的,所以你估计也看不到代码

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧