Java的文件名必须和公共类名相同的原因
分类:Java
来源:网络
时间:2010-10-21 23:45:03
首先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 { public Hello() { Syst" + "em.out.println("Hello, world!"); } } "; 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) { } } } } |
- 默认分类(20)
- J2EE(25)
- Java(56)
- PHP(55)
- SEO(10)
- 网页设计(20)
- 网站建设(37)
- 数据库(7)
- JavaScript(17)
- JQuery(6)
- MySQL(20)
- SQL Server(6)
- Access(1)
- Oracle(6)
- office(6)
- Dreamweaver(4)
- Photoshop(12)
- Flash(9)
- Fireworks(13)
- CSS(14)
- HTML(4)
- .NET(7)
- ASP(2)
- DB2(1)
- Ajax(2)
- Linux(12)
- Struts(7)
- Hibernate(8)
- Spring(2)
- Jsp(22)
- Asp(8)
- C#(3)
- C++(1)
- 网络安全(5)
- 软件工程(7)
- XML(1)
- English(2)
- 计算机等级考试(2)
- 计算机病毒(4)
- 个人日志(76)
- 互联网(15)
- ActionScript(10)
- Android(3)
- 数据结构与算法(1)
- 游戏策略(3)
- 美文翻译(2)
- 编程开发(19)
- 计算机应用(4)
- 计算机(10)
- Unity3d(6)
- 其他(1)
- egret(1)