你对java中的main方法有疑问吗?看看下面有没有你想要的解答吧!

问:不同main方法如何定义一个类?

答:没有main方法咋运行Java类?

问:main方法需要的参数不是字符串数组?

答:不是的,main方法的参数必须是字符串数组,但是在引进变参时,你可以将字符串类型的变参作为参数传递给main()方法。(变参一定是数组!)以下面为例:

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

问:我们能不能改变main()方法的返回类型?

答:不能,main()方法的返回类型只能是空。任何其它类型都是不接受的。例:

public class Main{
    public static int main(String[] args){
            return 1;
    }
}

问:main()方法为什么必须是静态的?

答:main()方法一定是静态的。如果main()允许是非静态的,那么在调用main方法时,JVM就得实例化它的类。在实例化时,还得调用类的构造函数。如果这个类的构造函数有参数,那么届时就会出现歧义(建议反复理解)。

问:我们能否重载main()方法?

答:当然可以了,一个Java类可以有任意数量的main()方法。但运行java类时,类的main()方法没有"public static void main(String[] args)"的声明,程序会运行不成功,但是可以编译成功。

问:我们能否声明main()方法为private或protected,或者不用访问修饰符?

答:不能,main()方法必须使用public。不能定义main()方法为private和protected,也不能不用访问修饰符。这是为了能让JVM访问main()方法。如果不定义main()方法为public,虽然编译也会成功,但会得到运行时错误,因为找不到main方法。

问:能否在java中覆盖main()方法?

答:不能,不能在Java中覆盖main方法。这是因为main方法是静态方法,而在Java中静态方法在编译时会结合在一起,所以在Java中不能覆盖静态方法。

问:我们能否在java中同步main方法?

答:可以,synchronized修饰符允许用于main方法的声明中。

如果大家还有什么疑问的话,可以在评论区进行交流探讨一下,互相学习!

猜你喜欢

转载自blog.csdn.net/qq_45743005/article/details/106085411
今日推荐