2021-03-07 main方法详解

Day1

下载Java 11后完成了IDEA配置以及第一条hello world

Java 工作方式

我们编写源文件.java, 后由编译器(类似IDEA)来运行源代码,输出到Java Virtual Machine(JVM)内,即输出.

Java 程序结构

源文件(.java)带有类的定义,类存于源文件sourcefile内,方法method存在类内,语句statement存在方法中

  • 源文件带有类的定义,为java扩展名的文件
  • 类表示程序的一个组件,内容在花括号内
  • 方法为可执行的指令,存在类内,由分号分开
  • 语句是在方法内的,可执行的指令

Main 方法以及code解析

// Code for today
public class Day1 {
    public static void main(String[] args){
        System.out.println("Star Platinum");
        System.out.println("The world!");
    }
}

Day1代表了我的类的名字, 此类中包含了main方法

Main方法

不论程序内含多少个类,程序必须由main方法开始, 且main必须声明为

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

为什么是public

public声明可被任何方法或变量使用,即java可从此类以外的地方来访问

Java运行时首先创建一个JVM进程,JVM启动进程来执行main方法, 于是便需要外部访问的权限,于是只能public

为什么是static

被static修饰的变量为静态变量,修饰的方法为静态方法,static方法属于类,non-static method需要创建实例来调用,而static方法不属于某个对象,可以直接通过类名调动。

所以main方法内使用的是static声明,因在JVM调用main方法时不用实例化,只用初始化main的所在类,通过类名.main来调用main方法

为什么是void

在C语言内,来自main的返回值代表了停止程序process exit code,而java是由c语言发展而来的,所以return main的值很有可能也代表了停止程序

而在java内,main的结束并不代表程序的结束,许多java程序会有一个很短的主线程,但生成许多长期的后台进程,于是retrun main便有可能传达一个停止程序的意思。因此将main声为void是最好的

为什么是main

main的名称不变是因为JVM的将以main作为程序的起点并查询。任何其他的线程均将由main方法作为初始线程来启动

为什么是String[] args

main中的String[] args 是用于接收命令行的配置并运行在程序内的。接收的形式为array of Strings.

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

以上代码,当用户调用时传入Drink Hot Java参数,便会有以下输出

//此为cmd
java Echo Drink Hot Java
Drink
Hot
Java

也就是说,main将用String类型接受args名字的参数,然后运行在程序内

References

Oracle CMD args
Oracle main specification
leizhimin
知乎专栏main详解

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值