当前位置: 首页 > 面试题库 >

如果没有main方法,是否可以执行静态块?

龚鸿雪
2023-03-14
问题内容

我正在尝试在计算机上运行以下代码,但是它没有执行任何操作,也没有显示任何错误。

public class StaticBlockDemo {
    static {
        System.out.println("Hello World");
    }
}

有人可以帮帮我吗?顺便说一句,我正在使用Java 7。


问题答案:

如果将-放在-block System.exit(0)的末尾static,它将在Java
6及更低版本中正确运行(没有有效的main!)。这是因为该static块是 main搜索有效方法 之前
执行的,因此,如果您在静态块的末尾退出程序,则不会收到任何错误。

但是, 此行为在Java 7中已更改。现在,您必须包括一个明确的main,即使它可能永远都不会达到。

在Java 7中,对这个问题的答案是 错误的 ,但是在Java 6及以下版本中,答案的确是 正确的

public class Test {
    static {
        System.out.println("Hello World");
        System.exit(0);
    }
}

Java 6:

你好,世界

Java 7:

错误:在Test类中找不到主要方法,请将主要方法定义为:
   公共静态void main(String [] args)


 类似资料:
  • 这将打印a.a=50 但是,如果我将更改为,那么我可以如何访问该变量呢?

  • 问题内容: 假设我有一个要实例化的类。我在类中有几个私有的“帮助器”方法,它们不需要访问任何类成员,而仅对它们的参数进行操作,并返回结果。 有没有指定任何特别的原因,并为静态方法-或任何特别的理由不? 将它们设置为非静态无疑是最容易的,即使它们可以肯定是静态的而不会引起任何问题。 问题答案: 我更喜欢这样的帮助方法; 这将使读者清楚地知道他们不会修改对象的状态。我的IDE还将以斜体显​​示对静态方

  • 我在学习,我是新手,但我想知道我做什么来“运行”它。这是一个错误:

  • 问题内容: 我是C ++中静态元编程的迷。我知道Java现在有了泛型。这是否意味着在Java中可以进行静态元编程(即,编译时程序执行)?如果是这样,任何人都可以推荐任何好的资源,以便在其中可以了解更多的信息? 问题答案: 这个问题已经有10多年的历史了,但是我仍然缺少一个答案。这是: 是的 ,但不是 因为 泛型,并且注释与C ++完全相同。 从Java 6开始,我们具有可插入注释处理api。静态元

  • 问题内容: 我在基类中定义了一个静态方法,我想在其子类中重写此方法,这可能吗? 我尝试了一下,但是没有按预期工作。当我创建类B的实例并调用其callMe()方法时,将调用类A中的静态foo()方法。 问题答案: 静态方法调用在编译时解决(不动态分配)。 给

  • 我有3个子类,每个都有唯一的ImagePath。 因此,我实现了,因为所有实例共享相同的映像。 问题就在这里。我想从父实例调用子静态方法。 当然,我可以使用调用基于类的静态方法。 假设我有10个子类,使用if-else语句并逐个调用它并不容易。 在Java中有没有办法从父实例调用子静态方法??