HelloWorld
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello world!");
}
}
相信大家踏入Java编码殿堂的第一行代码,都是System.out.println("hello world!")这行代码 :happy:。
”你好,世界“, 这仿佛也是我们对这世界的宣言:”你好,世界,我要用代码改变你“ 。那么这段代码是如何执行的尼?
main-起点吗
毋庸置疑,main方法是程序的入口方法,我们写的程序都是从这里开始的。
但是main肯定不是自己就跑起来啦,那么main又是被谁调用的,方法类型为什必须是public static void 呢?
Java 命令调用main
首先使用javac命令,将HelloWorld.java 编译成HelloWorld.class。 .class文件才是jvm可以识别的格式。然后执行java命令就会调用main方法,打印出 hello world!
java com.notbook.HelloWorld
上面这个过程都发生了什么尼~
-
1.创建一个java虚拟机
-
2.创建一个引导类加载器
-
3.创建JVM启动器
-
4.加载HelloWorld类
-
5.调用HelloWorld.main(...)
-
6.运行结束,销毁jvm
1,2,3都是java命令执行后,调用c++代码执行的操作。
4由jvm自行加载,类的加载过程和初始化
5由jvm调用HelloWorld的静态方法main
通过上面过程我们也可以知道
- main 为public 可以让其他类可以访问
- main 为static 那么jvm不需要创建包含这个main的实例,如果main不是静态的,那么jvm就必须创建main所在类的实例,但是构造器是可以被重载的,那么jvm就不能确定调用哪个实例的main方法了
- main的返回值对程序没有任何意义,所以void即可
main会运行在一个特定的线程中,也就是我们常说的”主线程“,直到main方法结束。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)