java 类名相同_Java的文件名必须和公共类名相同的原因

首先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) {

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值