java程序入口main方法浅析

10次阅读

共计 877 个字符,预计需要花费 3 分钟才能阅读完成。

java 程序入口 main()方法浅析

main()方法的方法签名

public static void main(String[] args)

方法签名讲解

 public 修饰符:java 类由 java 虚拟机(JVM)调用,为了没有限制可以自由的调用,所以采用 public 修饰符。
 static 修饰符:JVM 调用这个主方法时肯定不是先创建这个主类的对象,再通过对象来调用方法,而是直接通过该类来调用这个方法,因此需要使用 static 修饰符修饰这个类。
 void 返回值:主方法被 JVM 调用,将返回值返回给 JVM 没有任何意义,因此该方法没有返回值,所以使用 void。
 扩展:
 public:该修饰符表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用。
 static:该修饰符表示静态的意思,简单理解被 static 修饰符修饰的成员都属于类本身,而不属于类的某个实例,静态成员不能能直接访问非静态成员。
 void:使用 void 说明没有返回值。

这时会发现我没有说字符串数组形参内容,这里我们首先知道,谁调用方法,谁去传递形参,所以 args 形参由 JVM 负责赋值,JVM 给 args 赋了什么值?

我们先看一段程序:

public class args {public static void main(String[] args){for (String s:args) {System.out.println(s);
        }
        System.out.println("-------------------");
        System.out.println(args.length);
    }
}

输出:

-------------------
0

 这里输出数组长度为 0,这是因为,程序没有给 args 设定参数值,所以 JVM 也就不知道 args 数组中的元素,然后 JVM 给 args 数组设置为一个长度为 0 的数组。
 如果我们使用 dos 命令运行程序时,在类名后加上一个或者多个字符串(以空格隔开),这时 JVM 会依次将这些数值赋给 args 数组。
例如:

λ java lzjarg lzj why
lzj
why
-------------------
2

正文完
 0