<init>和(Native Method)是什么意思?

10

这些符号表示什么?(Native method) 是关于 java.io.FileStream.open 方法的说明是什么?

Exception in thread "main" java.io.FileNotFoundException: line23 (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:135)
at java.io.FileInputStream.<init>(FileInputStream.java:95)
at java.io.FileReader.<init>(FileReader.java:64) at Helper.readFile(Foo5.java:74)
at Bar2.main(Bar2.java:32)
3个回答

9
当你在堆栈跟踪中看到<init>时,它指的是类的构造函数。
“Native Method”表示该方法不是用Java实现的,而是使用其他低级语言,比如C或C++。在这种情况下,open()是一个需要底层函数的方法,这些函数因操作系统而异。

1
本地方法是在Java虚拟机(JVM)内部实现的。Java开发人员不必担心它们与虚拟机的内部工作相关的实现细节。
例如,java.io.FileStream.open() 就是这样一种操作。

0
如果您打开该类的源代码

java.io.FileStream

你可以看到,这个方法:

private native void open(String name) throws FileNotFoundException;

它没有任何实现。

该方法是用“native”代码实现的,也就是说,这段代码不在JVM中运行,通常使用C或C++编写。

本地方法通常用于与其他编程语言编写的系统调用或库进行接口交互。

要获取本地方法的源代码,你可能需要使用一些开源JDk,如OpenJDK。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接