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方法结束。

posted @   熬夜の熊猫君  阅读(442)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示