java主函数怎么写?java主函数有什么特殊之处?

JAVA中的主函数是我们再熟悉不过的了,每个学习过JAVA语言的人都能够熟练地写出这个程序的入口函数,并且给一个程序中肯定要有主函数,那java主函数怎么写?下面来我们就来给大家讲解一下。

主函数的一般写法如下:

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

java主函数有什么特殊之处?

main函数特殊之处:

1. 格式是固定的。

2.被jvm所识别和调用。

下面分别解释这些关键字的作用:

(1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数。

(2)static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有这个类的对象),所以其main()方法也不会存。而使用static修饰符则表示该方法是静态的,不需要实例化即可使用。

(3)void关键字表明main()的返回值是无类型。

(4)参数String[] args,这是本文的重点。

第一、程序使用者可以在命令行状态下向某个类传递参数。看下面的例子:

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

使用javac ArgsDemo.java命令生成ArgsDemo.class文件;然后使用“java ArgsDemo 参数一 参数二 参数三 …”的格式向ArgsDemo类传递参数。该示例程序将首先输出参数,然后输出所有参数的和。比如java ArgsDemo a b c,将得到这样的输出:

a
b
c
abc

需要注意的是,如果这里的循环条件不是i

Exception in thread “main” java.lang.ArrayIndexOutOfBoundException:3
at ArgsDemo.main(ArgsDemo.java:5)

第二、可以在另一个类中向包含main()的类传递参数,如下例:

public class A
{
    public static void main(String[] args)
    {
        for (int i = 0; i < args.length; i++) < p = "" >
            System.out.println(args[i]);
    }
}
public class B
{
    public static void main(String[] args)
    {
        c = new A();
        String[] b = {
            "111"
            , "222"
            , "333"
        };
        c.main(b);
    }
}

首先定义一个class A,在A中定义一个main()函数,在该函数中输出参数args。然后定义一个classB,在B中初始化一个A的实例c,然后向c传递参数,并且调用c的main方法打印出传入的参数值。输出结果如下:

111
222
333

由于main()函数是静态函数,即不需要实例化也能使用,所以B使用下面的写法也能完成相同的功能:

public class B
{
    public static void main(String[] args)
    {
        //A c = new A();
        String[] b = {
            "111"
            , "222"
            , "333"
        };
        A.main(b);
    }
}

主函数是java的入口方法,一般都是有规定的写法,并且一个程序中肯定要与主函数,如果没有主函数,那将不能运行!最后大家如果想要了解更多初识java知识,敬请关注奇Q工具网。

推荐阅读:

java系统架构如何设计?java系统架构设计详解

java中单个字符如何比较大小?java字符串怎么替换?

ajax默认是同步还是异步?如何选择?