public void static main(String[] args)

简介: 解析Java中的main方法

 前言

调用了那么多次的main方法,好像从来没有深入了解过它的语法及构成,今天深入了解一下

public static void main(String[] args) {}

image.gif

1.public

🐵从Java运行机制来看:

image.gif编辑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.

image.gif编辑

2.

image.gif编辑

对JVM的认识有可能存在不足,如有理解错误还请各位大哥指正一下!


相关文章
|
Java
main主函数(主方法)里头的参数String[] args有啥作用?
很多老铁不清楚JAVA主方法中main()里面的的参数是什么意思,以及有什么作用,接下来给大家用最通俗易懂的话来讲解。
118 0
main主函数(主方法)里头的参数String[] args有啥作用?
|
Java 调度 C++
java内部类以及为什么要用public static void修饰main()函数,String args[]是什么?(浅显的一些探索)
内部类 成员内部类 成员内部类就是定义在一个类的内部,其实是相当于成员变量的位置。 下面这两种其实都可以被称为成员内部类的,只不过一般static修饰的这种我们一般也可以称之为静态内部类。我们先来研究成员内部类(也可以称之为非静态内部类)怎么定义的话合理即可,明白意思就可以了。
254 0
java内部类以及为什么要用public static void修饰main()函数,String args[]是什么?(浅显的一些探索)
|
26天前
|
Java API 索引
Java基础—笔记—String篇
本文介绍了Java中的`String`类、包的管理和API文档的使用。包用于分类管理Java程序,同包下类无需导包,不同包需导入。使用API时,可按类名搜索、查看包、介绍、构造器和方法。方法命名能暗示其功能,注意参数和返回值。`String`创建有两种方式:双引号创建(常量池,共享)和构造器`new`(每次新建对象)。此外,列举了`String`的常用方法,如`length()`、`charAt()`、`equals()`、`substring()`等。
15 0
|
2月前
|
Java
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
【Java】如果一个集合中类型是String如何使用拉姆达表达式 进行Bigdecimal类型计算?
27 0
|
27天前
|
缓存 Java
Java中循环创建String对象的内存管理分析
Java中循环创建String对象的内存管理分析
22 2
|
6天前
|
Java
Java String类型转换成Date日期类型
Java String类型转换成Date日期类型
|
7天前
|
Java 索引
Java String应用与开发
Java String应用与开发
14 0
|
8天前
|
存储 安全 Java
聊聊Java中的常用类String
聊聊Java中的常用类String
12 0
|
11天前
|
缓存 安全 Java
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
6 0
|
11天前
|
存储 缓存 Java