首页 > 基础资料 博客日记
【Java面试手册-基础篇】如何实现在main()方法执行前输出"Hello World"?
2023-07-28 18:34:53基础资料围观218次
这篇文章介绍了【Java面试手册-基础篇】如何实现在main()方法执行前输出"Hello World"?,分享给大家做个参考,收藏Java资料网收获更多编程知识
在Java语言中,main()方法是程序的入口方法,在程序运行时,最先加载的就是main()方法,但这是否意味着main()方法就是程序运行时第一个被执行的模块呢?
答案不是的,在Java语言中,由于静态块在类被加载时就会被调用,因此可以在main()方法执行前,利用静态块实现输出"Hello World"的功能,以如下代码为例。
package com.magic.main;
public class StaticMainDemo {
static {
System.out.println("Hello World!");
}
public static void main(String[] args) {
System.out.println("Hello, main method!");
}
}
运行 StaticMainDemo,可以看到如下的输出信息:
Hello World!
Hello, main method!
从输出结果来看,"Hello World!" 是优先在 main() 方法执行前输出的。上面的示例代码中,static 静态代码块位于 main() 方法之前,如果调换一下位置,输出的结果还会是一样的吗?
package com.magic.main;
public class StaticMainDemo {
public static void main(String[] args) {
System.out.println("Hello, main method!");
}
static {
System.out.println("Hello World!");
}
}
再次执行,可以看到输出是一样的
Hello World!
Hello, main method!
也就是说,不管静态代码块所处于什么位置,都是优先于 main() 方法执行的,至于为什么会是这样的呢?这又涉及到另外的一个知识点了,那就是 Java程序初始化的顺序问题。
由于此篇文章主要是用来分享关于 Java 中 main() 方法的,因此就不再展开讨论 Java 程序初始化的顺序问题了,但是呢,这里贴上一张关于【Java程序初始化的顺序是怎样的?】的答案解析截图,如下:
更多有关Java面试相关的知识点可以关注【Java面试手册】小程序,涉及Java基础、多线程、JVM、Spring、Spring Boot、Spring Cloud、Mybatis、Redis、数据库、数据结构与算法等。
文章来源:https://www.cnblogs.com/javatop/p/16504881.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
上一篇:java 的 i++ 和 ++i 的区别
下一篇:Java学习第四周