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

时间:2013-07-23 06:29:37

标签: java methods native init filenotfoundexception

符号表示什么以及(本地方法)对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 个答案:

答案 0 :(得分:9)

当你看到&lt; init&gt;在stacktrace中,它引用类的构造函数。

本机方法表示该方法不是用Java实现的,而是用C或C ++等其他低级语言实现的。在这种情况下,open()是一种需要低级功能的方法,这些功能与操作系统不同。

答案 1 :(得分:1)

本机方法在JVM(Java虚拟机)中实现。 Java开发人员不应该担心它们的实现,因为它们与虚拟机的内部工作有关。

在这里java.io.FileStream.open()这是一项行动。

答案 2 :(得分:0)

如果您打开课程的来源

  

java.io.FileStream

你可以看到这个方法

  

private native void open(String name)抛出FileNotFoundException;

没有任何身体。

该方法在&#34; native&#34;中实现。码。也就是说,代码不能在JVM中运行。它通常用C或C ++编写。

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

要获取本机方法的源代码,您可能必须使用一些开源JDk,如OpenJDK