到目前为止,我一直在使用public void run() {}
方法在 Java 中执行我的代码。何时/为什么要使用main()
或init()
代替run()
?
5 回答
这是一个特殊的问题,因为它不应该是一个选择问题。
当您启动 JVM 时,您指定一个要运行的类,它是main()
您的程序启动的此类的 。
,init()
我假设您的意思是 JApplet 方法。当在浏览器中启动小程序init()
时,指定小程序的方法作为第一业务顺序执行。
,run()
我假设你的意思是 Runnable 的方法。这是新线程启动时调用的方法。
- main:程序开始
- init:小程序启动
- 运行:线程启动
如果 Eclipse 正在运行您的run()
方法,即使您没有main()
,那么它正在做一些特殊和非标准的事情,但并非不可行。也许您应该发布一个您一直以这种方式运行的示例类。
该main
方法是 Java 应用程序的入口点。
具体来说,当 Java 虚拟机被告知通过指定其类(通过使用java
应用程序启动器)来运行应用程序时,它将查找main
具有public static void main(String[])
.
从 Sun 的java
命令页面:
java工具启动 Java 应用程序。它通过启动 Java 运行时环境、加载指定的类并调用该类的main方法来做到这一点。
该方法必须声明为 public 和 static,它不能返回任何值,并且它必须接受一个
String
数组作为参数。方法声明必须如下所示:public static void main(String args[])
有关如何执行 Java 应用程序的其他资源,请参阅以下资源:
- 第 12 章: Java 语言规范的执行,第三版。
- 第 5 章: Java 虚拟机规范的链接、加载和初始化,第二版。
- 深入了解Java 教程中的“Hello World”应用程序。
该方法是实现接口的新方法或类run
的入口点。Java虚拟机在命令启动时不会调用它。Thread
Runnable
java
由于 a Thread
orRunnable
本身不能由 Java 虚拟机直接运行,所以必须由Thread.start()
方法调用。这可以通过实例化 aThread
并在应用程序的方法中调用其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();
}
}
Thread
有关如何启动子类或实现类的更多信息和示例Runnable
,请参阅Java 教程中的定义和启动线程。
该init
方法是Applet或JApplet中调用的第一个方法。
当一个小程序被浏览器的Java插件或小程序查看器加载时,它会首先调用该Applet.init
方法。使用小程序所需的任何初始化都应在此处执行。init
方法完成后,调用该方法start
。
有关何时init
调用小程序的方法的更多信息,请阅读Java 教程中的小程序生命周期中的小程序生命周期。
另请参阅:如何通过 Java 教程制作小程序。
Java有一个特殊的静态方法:
public static void main(String[] args) { ... }
当使用 java 命令行启动类时在类中执行:
$ java Class
如果存在,将在“Class”类中执行所述方法。
public void run() { ... }
是 Runnable 接口需要的,或者是在创建新线程时从 Thread 类继承的。
该main()
方法是 Java 应用程序的入口点。run()
通常用于新线程或任务。
你在哪里写过run()
方法,你在写什么样的应用程序(例如 Swing、AWT、控制台等)以及你的开发环境是什么?
作为初学者,我导入 acm 包,在这个包中,run() 开始执行线程,init() 初始化 Java Applet。