到目前为止,我一直在使用public void run() {}方法在Java中执行我的代码.何时/为什么可能想要使用main()或init()代替run()?
Jeg*_*sch 74
这是一个特殊的问题,因为它不应该是一个选择问题.
启动JVM时,指定要运行的类,它是main()程序启动时所在的类.
通过init(),我想你指的是JApplet的方法.在浏览器中启动applet init()时,指定applet 的方法将作为第一个业务顺序执行.
通过run(),我假设你的意思是Runnable的方法.这是启动新线程时调用的方法.
如果Eclipse正在运行你的run()方法,即使你没有main(),那么它正在做一些特殊的和非标准的,但不是不可行的.也许您应该发布一个以这种方式运行的示例类.
coo*_*ird 17
该main方法是Java应用程序的入口点.
具体来说,当Java虚拟机通过指定其类(通过使用java应用程序启动器)被告知运行应用程序时,它将查找main具有签名的方法public static void main(String[]).
从Sun的java命令页面:
在Java的工具启动Java应用程序.它通过启动Java运行时环境,加载指定的类以及调用该类的main方法来实现此目的.
该方法必须声明为public和static,它不能返回任何值,并且必须接受
String数组作为参数.方法声明必须如下所示:Run Code Online (Sandbox Code Playgroud)public static void main(String args[])
有关如何执行Java应用程序的其他资源,请参阅以下来源:
该run方法是Thread实现Runnable接口的new 或类的入口点.Java Virutal Machine在java命令启动时不会调用它.
作为一个Thread或Runnable本身不能直接由Java虚拟机上运行,所以它必须通过调用Thread.start()方法.这可以通过在应用程序的方法中实例化Thread并调用其start方法来实现main:
public class MyRunnable implements Runnable
{
public void run()
{
System.out.println("Hello World!");
}
public static void main(String[] args)
{
new Thread(new MyRunnable()).start();
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息以及如何启动子类Thread或实现类的示例Runnable,请参阅从Java教程定义和启动线程.
该init方法是在Applet或JApplet中调用的第一个方法.
当applet由浏览器的Java插件或applet viewer加载时,它将首先调用该Applet.init方法.应该在此处执行使用applet所需的任何初始化.在之后init的方法完成,start方法被调用.
有关何时init调用applet方法的更多信息,请阅读Java教程中Applet生命周期中 applet的生命周期.
| 归档时间: |
|
| 查看次数: |
115608 次 |
| 最近记录: |