Sugaweh的博客

我看我自己,就像一个在海边玩耍的孩子,找到一块光滑的小石头,就觉得开心。后来我才知道自己面对的,还有一片真理的大海,那没有尽头。...

public static void main(String[] args)

最近刚开始学习JAVA,下面是遇到的一些问题,在网上查看了很多资料和一些牛人的技术博客,自己才稍稍领悟,在这里做些总结和整理。有些牛人对知识点的理解很完美,这里就直接借鉴了。

注:本人菜鸟一枚,错误之处望留言指正。

  • 1、写JAVA代码时,最先写的这两行到底是什么意思?

    1. public class HelloWorld {
    2.     public static void main(String[] args) {
    3. 
    4.     }
    5. }
    
  • 在这里首先说下,定义一个方法的语法:

        访问修饰符  返回值类型  方法名(参数列表) {
                方法体
        }
    
    1. 访问修饰符:方法允许被访问的权限范围,比如,public、protected、private 或者省略。其中public表示该方法可以被其它任何代码调用
    2. 返回值类型:定义方法的返回值的类型,如果方法不需要返回任何值,则返回值类型指定为void;如果方法需要返回值,则需要指定返回值的类型,并且在方法体中添加一条return语句用来返回值
    3. 方法名:定义的方法的名字,必须使用合法的标识符
    4. 参数列表:传递给方法的参数列表,参数可以有多个,也可以没有,多个参数之间用逗号隔开。每个参数由参数类型和参数名组成,以空格隔开
  • 在这里先来了解一些与Java相关的名词:

Java Virtual Machine,简称JVM;它是运行所有Java程序的抽象计算机,是Java语言的运行环境,JVM读取并处理编译过的与平台无关的字节码(class)文件。
Java语言是跨平台的,就是因为有JVM的存在。而JVM不是跨平台的,不同的操作系统需要安装与此对应的JVM。在需要运行Java应用程序的操作系统上,先安装一个Java虚拟机,由Java虚拟机负责Java程序在该系统中的运行。

在Java编程中,JVM会首先查找类中的main方法,因为main方法是Java程序的入口(关于程序的入口,其它的情况在这里不讨论),如果找不到main方法,程序会报错(我是在DOS界面中分布运行Java程序的,在程序的编译阶段不会报错,在程序的执行阶段会报错,提示:“在类中找不到main方法,请将main方法定义为:public static void main(String[] args) …”Java程序的执行阶段是由JVM参与的,编译阶段JVM是不管的)

main方法的public修饰符

public表明允许系统中任何位置的类都可以访问它。当然,JVM也可以轻松的访问执行它。

main方法的static修饰符

这里先说说类的实例化

如果被调用的方法声明为static,可以在其它方法中直接调用。如果被调用方法没被static修饰(不是静态方法),调用时需要通过类的实例化进行调用(因为静态方法随着类的加载而加载,其先存在,对象后存在。一个已经存在的方法去调用还不存在的方法(没被static修饰),就要先创建那个方法的对象,创建对象的过程,就称为实例化。然后通过对象去调用那个方法。这个过程就是类的实例化)
1. 因为main方法是静态的,JVM调用这个方法时就不需要创建任何包含这个main方法的实例。
2. 如果main方法不声明为静态的,JVM就必须创建main类的实例,但是构造器可以被重载(个人理解,“构造器”就是,和类名相同但无返回值的方法),JVM就没法确定调用哪个main方法。

main方法返回值为void

main方法作为程序的入口和出口,是没有返回值的,main方法不同于其它方法,其它方法可以有返回值,这样在程序中调用该方法是,可以获取返回值,而main方法是由JVM调用的,如果main有返回值,那这个返回值返回给谁呢,肯定返回给JVM,那么这个返回还有意义吗。

(String[] args)

函数的参数,参数类型是一个数组,该数组中的元素是字符串。JVM在调用主函数时,传入的是new String[0];

程序第一行的“public class HelloWorld”也就很好理解了,指定类名Helloworld的权限为public(公有的)

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Sugaweh/article/details/52357565
文章标签: java
个人分类: Java基础
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭