第1个回答 2008-02-02
nicky_zs 讲的才是你需要得答案,这才是精华
再补充一下,这里仅仅简单的描述一下,并非绝对真实.虚拟机启动,会有一个叫"类加载器"的东西,ClassLoader,在代码中你自己也可以扩展此类自己加载类.即你编译好的.class文件
当你使用JAVA 命令(工具只是帮你执行了这个命令所以你看到的只是一个"运行")来运行的时候,类加载会加载你的类,并且使用反射机制得到"名字为main,参数为String[]类型"的方法(比如Method mainMethod = YourClass.getDeclaredMethod("Main")),然后调用方法的invoke方法(mainMethod.invoke(args))来执行. 那么,如果你没有定义main方法,你会发现报找不到main方法的异常.
所以,给我们的感觉就是main方法就是程序运行的方法.
那么,如果你可以自己扩展ClassLoader来加载一个类,你也可以制定自己的特定的程序入口方法,打个不切实的比方比如线程类的run()方法
第4个回答 2008-02-02
在这里,你可以更改的只有args,他是用来接受你将来在命令行输入参数用的,