为什么java的文件名必须和公共类名相同

时间:2021-05-02

首先Java是被解释执行的。它在运行时并不是将所有的class文件全都放到内存中。而是在遇到import的时候才去相应的文件目录找相应的class文件。

  对于一个public类,它是可以被项目中任何一个类所引用的,只需在使用它前import一下它所对应的class文件即可。将类名与文件名一一对应就可以方便虚拟机

  在相应的路径(包名)中找到相应的类的信息。如果不这么做的话,就很难去找,而且开销也会很大。

  一下是我写的一个比较“恶心”的程序来说明这个问题,大家在使用前先要将自己JDK的bin目录设置到环境变量path中去:

  import java.io.FileOutputStream;  import java.io.IOException;  import java.io.FileNotFoundException;  public class Test  {   public static void main(String[] args) {   Object b = null;   try {   b = Class.forName("Hello").newInstance();   }   catch(InstantiationException e) {  }   catch(IllegalAccessException e) { }   catch(ClassNotFoundException e) {   try {  FileOutputStream file = new FileOutputStream("Hello.java");   String s = "public class Hello {\r\n\t\r\n\tpublic Hello() {\r\n\t\tSyst"  + "em.out.println(\"Hello, world!\");\r\n\t}\r\n}\r\n";   file.write(s.getBytes());   Process p = Runtime.getRuntime().exec("javac Hello.java");   System.out.println("The return value is: " + p.waitFor());   b = Class.forName("Hello").newInstance();   }   catch(FileNotFoundException ee) {  }   catch(IOException ee) {  }   catch(InterruptedException ee) {  }   catch(InstantiationException ee) {  }   catch(IllegalAccessException ee) {  }   catch(ClassNotFoundException ee) {  }   }   }  }

本文源自:翔宇亭——IT乐园(http://),转载请保留此信息!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章