相关疑难解决方法(0)


'String args []'和'public static void main(String [] args)'中的静态的解释

对于初学者,你如何能够很好地解释下面摘录中的含义String args[]和用法static

class FirstApp {
    public static void main(String[] args) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

java program-entry-point

46
推荐指数
4
解决办法
42万
查看次数

为什么Java规范要求程序的主要方法只是无效?

虽然返回类型不是方法签名的一部分,但JVM会查找精确的声明

 public static void main(String[] args)
Run Code Online (Sandbox Code Playgroud)

我的假设是,由于方法签名没有包含"返回类型",我必须允许更改返回类型.

但是,如果我将其更改为public static int main(String[] args)并返回一个值,假设为0,则JVM无法执行程序并退出并显示错误

Error: Main method must return a value of type void in class TestData, please 
define the main method as:
   public static void main(String[] args)
Run Code Online (Sandbox Code Playgroud)

为什么Java规范要求主方法只是无效?当返回类型不是方法签名的一部分时,为什么会出现此限制?

这个问题与为什么java中的main()不同:这个问题是关闭的,因为它是基于意见的,而我正在寻找JVM调用此方法的代码位置/进程,以及强制它们将此方法保持为空的限制.他们采取了哪些设计决策(以及背后的推理),以及它在哪里记录.

我正在寻找事实,以便知道为什么会这样做.如果不仔细阅读问题的详细信息,请不要将其标记为重复.

PS:退出,是另一回事.我更关心该计划的进入.此外,返回的值可能不是使用JVM,而是将其限制为void可扩展性.

到目前为止,我从这个问题中学到的是:Java规范明确地修复了返回类型,以避免混淆迁移程序员(C/CPP),他们可能期望这个值返回到操作系统,但由于JVM介于此之间,因此该值永远不会返回OS.为了这个特殊目的(返回OS的值),他们提供了System.exit()方法.


对于那些建议返回类型是签名的人 - 只是尝试在类中定义以下两种方法

    public static void main(String[] a){

    }
    public static String main(String[] a){

    }
Run Code Online (Sandbox Code Playgroud)

您将收到编译错误,因为这两种方法的签名是相同的.

java jvm return-type

22
推荐指数
6
解决办法
2409
查看次数

java中的public static void main(String arg [])是固定的吗?

我最近在考试中被问到方法的public static void main(String arg[])格式是否main已修复?我们可以改变它吗?我们可以使用main没有任何public,staticvoid?如果不是,为什么不是硬编码的main(String arg[])就代表public static void main(String arg[])永远?

java

14
推荐指数
1
解决办法
5万
查看次数

主要功能不返回任何东西.为什么?

关于C/C++,main()必须始终返回一个整数(零表示成功,非零表示失败).我可以理解这一点,因为程序运行它变成一个进程,每个进程都应该有一个退出状态,我们通过echo $获得?在进程结束后从shell中获取.

现在我不明白为什么main方法不能在Java中返回任何内容?它是否与程序在JVM上运行并且JVM进程可以返回以返回退出状态这一事实有什么关系?

请澄清.

谢谢,
罗杰

c c++ java jvm

12
推荐指数
3
解决办法
4562
查看次数

Java初学者关于主方法中String [] args的问题

所以我只是尝试String[]main方法中排除args

它汇编好了!

但JVM正在显示异常

为什么String[]每次都要包含args 时它会编译?

这里发生了什么 ?为什么不显示编译错误?

打字这让我觉得可能是编译器没有把它看成是main方法..是这样的吗?

如果是这样的话......为什么不呢?我的意思是不应该只有一个主要的方法必须有String[]args作为参数?

java program-entry-point

4
推荐指数
2
解决办法
1万
查看次数

kotlin springboot应用程序 - 为什么没有表达体的功能?

在我的(2.0.0.M6)kotlin-spring启动应用程序中,当我这样做时,一切正常

fun main(args: Array<String>) {
   runApplication<MyApplication>(*args)
}
Run Code Online (Sandbox Code Playgroud)

但是找不到mainClass,IDEA不允许在我这样做时运行应用程序

fun main(args: Array<String>) = runApplication<RankedApplication>(*args)
Run Code Online (Sandbox Code Playgroud)

这根本不重要,但我想知道:为什么?

kotlin spring-boot

1
推荐指数
1
解决办法
467
查看次数

system.exit()在Java中的用途在哪里?

看来return status code从你的角度来看的一种方式main.但我想知道这int是怎么回事?我在eclipse上尝试过,但是我没有在控制台上看到它.我怎么得到的status code

public static void main(String[] args){
         int status = 123;
          System.exit(status);
     }
Run Code Online (Sandbox Code Playgroud)

java program-entry-point exit system.exit

0
推荐指数
1
解决办法
1312
查看次数