前言
调用了那么多次的main方法,好像从来没有深入了解过它的语法及构成,今天深入了解一下
public static void main(String[] args) {}
1.public
🐵从Java运行机制来看:
编辑1.Java源代码通过javac编译器编译成.class的类文件
2.JVM中的类加载器来加载这个类文件到数据区,补充一下--类加载器主要有:Bootstrap类加载器Extension类加载器和System类加载器
🐵理解:
从上述两步操作可以看出,我们写的代码其实是JVM中的类加载器在加载连接,就可以简单理解成是JVM在调用我们的main方法。 但是.class文件在外部--------理解成这个类文件和JVM不在同一个类,若要访问类中的main方法,我的访问修饰符就必须是public!
🌞2.static
在理解static特性的基础上,我们知道static修饰的方法在调用时不需要创建对象,是直接调用的!
写了这么多的代码,有没有发现从来都是在main()方法中通过实例化的对象去调用别的类的成员变量,成员方法。而在写出main()方法过程中从来都没有创建过对象来调用此方法———说明JVM在执行main()方法时不必创建对象,所以该方法必须是静态方法,要用static!
🌞3.(String[] args)
上述为main()方法的形参列表部分,表示给主方法传一个字符类型的数组,该数组中保存执行Java命令时传递给所运行的类的参数。
(String[] args) 是一个命令行参数,通俗的说就是执行java命令后你所输入的语句!因为平常都是java代码写好后交给编译器,虚拟机处理,而调用主方法就是我们完成工作的最后一步,所以一般不需要再向main()方法的形参列表中传入参数。
args是字符串数组的变量名,全称--arguments,是一个默认值。
具体的动态传值方法如下:
1.
编辑
2.
编辑
对JVM的认识有可能存在不足,如有理解错误还请各位大哥指正一下!