main方法为什么要写成:public static void main(String [] args){}?

使用idea创建src的java文件时自带一个Main.java文件,该文件输出一句"Hello World",这是为什么呢?原来Hello World 中文意思是『你好,世界』。因为《The C Programme Language》中使用它做为第一个演示程序,非常著名,所以后来的程序员在学习编程或进行设备调试时延续了这一习惯。

        java文件的本质是什么?

        java文件本质其实就是文本文件,我们可以用任何文本编辑器对它进行编译(不信的话可以试试选择打开方式,只要是使用文本编辑器它的内容都不会改变),只要最后它的扩展名为.java就可以使用java虚拟机jvm对其进行编译和运行。

        main方法是程序的入口,可是main方法为什么要写成:public static void main(String [] args){}?


        首先 main是java程序的入口,java程序通过java虚拟机JVM调用,属于外部调用,所以需要使用public修饰,否则虚拟机无法调用。

        在java中,没有static的变量或函数,如果想被调用的话,是要先新建一个对象才可以。而main函数作为程序的入口,需要在其它函数实例化之前就启动,这也就是为什么要加一个static。main函数好比一个门,要探索其它函数要先从门进入程序。static提供了这样一个特性,无需建立对象,就可以启动。

        使用void的原因是当main方法出现返回值时JVM无法进行上抛,如果有返回值难道抛给操作系统么?

        String[]args中args是数组的名字,并不是固定的,不信可以自己试试,它是声明了一个可从控制台接受的数据的类型为String数组,所以main方法中其实除了这个arg意外其他都必须是固定格式。从控制台你接收参数的方法如下图:

我现在java文件中输出args数组中下标为0的值


然后再控制台运行的时候顺便输入a、b、c三个参数进去


我们可以看到它输出了第一个值,说明从控制台接收到了参数。

来自于:https://blog.csdn.net/NotDreamFish/article/details/80736699


第一次运行时出现的问题:

        



JDK编译正常,那么JAVA_HOME配置正确。如果这样的话,那你的类的放的实际位置,package设置的和类路径的设置不匹配,执行器找不到类文件;说白了就是编译后的class文件的路径问题。

两种解决办法:

1.把package语句去掉,让编译文件处于当前文件夹

例如我将java文件的package去掉,将文件放在桌面,编译通过

2.不去掉package,在java文件同级目录加一个package相同名称的文件夹