cnfox

你真的懂'main'函数吗?
main 函数package cn.icnfox.Java; public class MainDemo { ...
扫描右侧二维码阅读全文
31
2019/08

你真的懂'main'函数吗?

main 函数

package cn.icnfox.Java;

public class MainDemo {

    public static void main(String[] args) {
        

    }
}

 对于练习时常两年半的Java练习生( 手动鸡你太美 ヽ(✿゚▽゚)ノ ),对这一段代码肯定都能做到倒背如流,因为实在是太熟悉了,基本每天都要接触到,但是小妖精们真的懂'main'函数吗?

逐个分析

  • public:开放,代表看该函效访问权限是最大的。
  • static:静态,代表主函数随着类的加载就已经存在了。
  • void:主函数没有具体的返回值。
  • main:不是关键字,但是是一个特殊的单词,可以被jvm识别,程序的入口。
  • (string[] args):函数的参数,参数类型是一个数组,该数组中的元素是字符串。字符串类型的数组。
  • 主函数是固定格式的:jvm识别。

'main'函数哪一部分可以修改?

 'main'函数是固定格式的,作为类的入口被JVM所识别,但并不是不可以一成不变的,'main'函数有一个部分是可以改变的,
他就是'args'

 'args'是参数的变量,是可以修改成任意符合变量规则的名称的,但是为什么大家书写'main'函数都用'args'呢?其实老美刚开始写的不是'args',而是'arguments'是自变量的意思,中国程序员简化成了'args',并且,慢慢变成了一个默契。

'main'函数传入的参数到底是什么呢?

 (string[] args),首先我们可以看懂传入的是一个String类型的数组,不妨用代码检测下

代码

package cn.icnfox.Java;

public class MainDemo {

    public static void main(String[] args) {
        
        System.out.println(args);
    }

}

运行结果

[Ljava.lang.String;@15db9742

 从运行结果上我们可以看出,[代表数组,java.lang.String代表String类型,@15db9742代表地址值

 那传入的这个Stirng类型的数组的长度是多少呢?答案是0
 jvm在调用主函数时,传入的是new string[0];

代码

package cn.icnfox.Java;

public class MainDemo {

    public static void main(String[] args) {
        
        System.out.println(args);
        System.out.println(args.length);
    }
}

运行结果

[Ljava.lang.String;@15db9742
0

可以给'main'函数传入参数吗?

 答案是可以的,直接上代码试验下,方法有很多种,我只选取了其中一种

代码

package cn.icnfox.Java;

public class MainDemo {

    public static void main(String[] args) {

        String[] arr= {"11","22","3"};
        MainDemo2.main(arr);
    }

}

class MainDemo2 {

    public static void main(String[] args) {
        
        for (int i = 0; i < args.length; i++) {
            System.out.println(args[i]);
        }
    }
    
}

运行结果

11
22
3

'main'函数可以被重载吗?

 答案是可以的,直接上代码试验下

代码

package cn.icnfox.Java;

public class MainDemo {

    public static void main(String[] args) {
        
        System.out.println("Hello World");
    }
    //main函数的重载
    public static void main(String[] args,int x) {
        System.out.println("Hello World-重载");
    }
}

运行结果

Hello World
Last modification:September 2nd, 2019 at 03:35 pm
如果觉得我的文章对你有用,请随意赞赏

Leave a Comment