【问题标题】:what does this line says...?这条线说什么...?
【发布时间】:2011-08-17 11:47:00
【问题描述】:

尽管我在 java 中做了一些编码,但我仍然发现很难理解这个基本概念。当我在看一本书时,我遇到了这条线,

main( ) 必须声明为public,因为它必须被调用 当程序启动时,通过其类之外的代码。

作者所说的类之外的代码是什么意思?

【问题讨论】:

  • @MByD.. 我不是在问谁在调用它.. 我知道 JVM 调用它.. 但我不知道代码外部意味着它的 JVM..
  • 正如OP所说,这是一个关于对书中特定句子的解释的问题,而不是实际上是否是调用该方法的JVM。 (从问题的标题就可以看出。)
  • @aioobe - 我可能因为“哪个代码在调用它......?”这个问题而感到困惑。无论如何,抱歉,这对我来说听起来像是重复的。
  • @MByD.. 人们只是关注你,甚至没有阅读问题......:)
  • @MByD,没有问题......实际上这个问题有点模棱两可。有点沮丧,因为这是gets closed 今天的第二个问题,原因很糟糕(imo):P

标签: java


【解决方案1】:

作者说它的类之外的代码是什么意思..是哪个代码调用它..?

调用该方法的是 JVM,所以,是的,在这种情况下,“在其类之外”应该被解释为“由 JVM”。

从技术上讲,JVM 不是包含 main 方法的类的一部分,因此该方法必须是公共的才能调用它。

【讨论】:

  • @aioobe.. 你的意思是说外面的代码间接意味着它的JVM......?
  • 是的,这就是我的解释。
【解决方案2】:

JVM直接调用这个类而不创建这个类的实例,所以它是静态的。

当您在后台运行该类时,您的操作系统会收到此命令

java YourMainClass

这里的 java 是一个可执行文件,你的操作系统知道它在哪里,YourMainClass 是 java 的参数,它加载类并搜索并调用 main 方法

由于是 JVM 调用所以 public ,因为它没有创建对象的任何实例,所以它是 static

【讨论】:

    【解决方案3】:

    main() 方法由 JVM 调用。

    【讨论】:

      【解决方案4】:

      另一个不在此包中的类或 JVM 本身。

      【讨论】:

      • 不正确,main 和其他人一样是公共方法。这是程序员的选择。
      【解决方案5】:

      main 函数是程序的入口点。如果这个函数不是公共的和静态的,你的程序就无法启动。

      【讨论】:

        【解决方案6】:

        如果您对低级别的东西感兴趣,请查看:http://java.sun.com/docs/books/jls/second_edition/html/execution.doc.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-06-17
          • 2017-12-08
          • 1970-01-01
          • 2015-01-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-29
          相关资源
          最近更新 更多