Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改Java程序的执行起点_Java - Fatal编程技术网

更改Java程序的执行起点

更改Java程序的执行起点,java,Java,这是我被问到的一个面试问题。我们都知道,Java程序的执行从具有以下签名的主方法开始: public static void main(String[] arg) 是否有办法将Java程序的执行起点更改为另一种方法,例如通过调整任何JVM配置参数?否。无论应用程序在封面下做什么,或者事情可能会变得多么复杂,您的程序都必须包含声明为public static void main(String[]args)(或args的一些vararg声明) 这一点概述如下: Java虚拟机通过加载指定的类,然后

这是我被问到的一个面试问题。我们都知道,Java程序的执行从具有以下签名的主方法开始:

public static void main(String[] arg)

是否有办法将Java程序的执行起点更改为另一种方法,例如通过调整任何JVM配置参数?

否。无论应用程序在封面下做什么,或者事情可能会变得多么复杂,您的程序都必须包含声明为
public static void main(String[]args)
(或
args
的一些vararg声明)

这一点概述如下:

Java虚拟机通过加载指定的类,然后在此指定类中调用方法
main
启动


如果
main
不存在,则会发生运行时错误(具体来说,它会抱怨找不到
main
)。

否。无论应用程序在封面下做了什么,或者事情可能会变得多么复杂,您的程序都必须包含一个声明为
公共静态void main(字符串[]args)
(或
args
的一些vararg声明)

这一点概述如下:

Java虚拟机通过加载指定的类,然后在此指定类中调用方法
main
启动


如果
main
不存在,就会出现运行时错误(具体来说,它会抱怨找不到
main
)。

有没有办法将Java程序的执行起点更改为另一种方法,比如调整任何JVM配置参数

答案是否定的,你不能

当普通JVM开始运行一个类时,它会在类中查找main方法。这就是JVM的设计方式

您还可以在回答中添加..java程序还有其他执行模型。例如applet、servlet等

小程序将在支持jvm的浏览器中运行,而不使用main方法。 servlet将在没有main方法的servlet容器中运行

无论您在静态块中添加什么,都是在main之前执行的……但没有main,类仍然无法运行。因此,理论上,您可以通过添加静态块来更改java程序的起点,但如果类中没有main,则程序执行将失败


如果你想继续展示,那么你可以说,因为main不是一个关键字。我们可以更改jvm代码来识别另一个方法名,而不是main。但是为此,我们更改jvm代码。不能作为参数传递。有没有办法将Java程序的执行起点更改为另一个方法,比如通过调整ny JVM配置参数

答案是否定的,你不能

当普通JVM开始运行一个类时,它会在类中查找main方法。这就是JVM的设计方式

您还可以在回答中添加..java程序还有其他执行模型。例如applet、servlet等

小程序将在支持jvm的浏览器中运行,而不使用main方法。 servlet将在没有main方法的servlet容器中运行

无论您在静态块中添加什么,都是在main之前执行的……但没有main,类仍然无法运行。因此,理论上,您可以通过添加静态块来更改java程序的起点,但如果类中没有main,则程序执行将失败


如果你想继续展示,那么你可以说,因为main不是一个关键字。我们可以更改jvm代码来识别另一个方法名,而不是main。但是为此,我们更改jvm代码。不能作为参数传递。确实可以在几个方法中的任何一个启动应用程序,通过选择“强>类< /强>具有强<主< /强> >。为了测试目的,我一直在做。我将把这项技术看作是调整JVM配置参数的方法。下面是java文档所说的。< /P>

< /P> < P>确实有可能通过选择<强> > java类> <强> >的任何一种方法来启动应用程序,所有这些都被称为main。我总是这样做,为了测试目的。我将把这项技术看作是调整JVM配置参数的方法。下面是Java文档所说的内容。关于它


你可以添加静态块,这样它就成为了起点。
Applet
也可以工作,这也是一种非常基本的方式。我认为这不是一个好主意,或者根本没有必要,它会让人困惑,甚至可能会有安全问题。你应该问面试官他们为什么需要这样做。你可以添加静态块,这样就可以了这是一个起点。
Applet
也可以工作,也是一种非常基本的方式。我认为这不是一个好主意或根本没有必要,它会让人困惑,甚至可能会有安全问题。你应该问面试官为什么他们需要这样做。