java - Java中需要静态 block 输出的解释

标签 java class methods static println

我的代码是:-

class Test
{
  static int a = 11;
  static
  {
    System.out.println("Hello static! " + main() + a);
  }

  public static void main(String[]args)
  {
    System.out.println("Hello String!");
  }

  public static char main()
  {
    System.out.println("Hello char!");
    return 'H';
  }
}

输出:-

Hello char!
Hello static! H11
Hello String!

为什么“你好,字符!”在“hello static!”之前打印?

最佳答案

  1. 静态 block 首先执行。
  2. 它在组装要打印的字符串时调用不带参数的 main()。
  3. main() 打印一些输出。
  4. 静态 block 打印其输出。
  5. 静态 block 退出。
  6. 您的 main(String[]) 方法执行并打印其输出。

关于java - Java中需要静态 block 输出的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14796060/

相关文章:

python - 类变量的难以理解的行为

c++ - 由于无效写入导致的段错误

Java抽象方法签名

javascript - 如何在方法使用后保持变量值相同?

java - 在java中将一本书的多个值添加到ArrayList中

java - 为什么与 Java 7 捆绑在一起的 Java API for XML Processing (JAXP) 不起作用?

java - 将 Instant 从大纪元时间转换为微秒

java - 在Java中提取大写字符的最快方法

java - 如何验证 Person 类中的输入

javascript - 在 Javascript 类中声明公共(public)方法时出现语法错误