1.这是java预定的一个规范,main函数代表了一个独立的程序的入口,他的格式是固定的。对于每一个main函数,java都会起一个JVM。JVM会在class中寻找符合这一声明规范的函数。
2.如果不是public的,在类的外部就无法调用。那么JVM也就无法启动这个程序。
3.如果不是static的,就必须要有一个类的实例来调用这个函数,在程序的入口之前,是没有任何对象被创建的,所以也就无法调用该函数。
2.如果不是public的,在类的外部就无法调用。那么JVM也就无法启动这个程序。
3.如果不是static的,就必须要有一个类的实例来调用这个函数,在程序的入口之前,是没有任何对象被创建的,所以也就无法调用该函数。
static void main(String [] ssss) {
System.out.println("test");
}
}
可以編譯運行
public class ttmain {
static void main(String [] ssss) {
System.out.println("test");
}
}
当然可以编译,因为main也只不过是一个普通的类方法而已,改成非static, 非void,非String[]参数也可以编译,但你在命令行运行一下试试!
因为所谓的stand-alone程序,实际上是运行JVM中提供的缺省ClassLoader,把你的类名作为参数传递给它。
在你的类实例还没有生成之前(因为你的类不一定有缺省无参构造),而且ClassLoader和你的类肯定不在一个包(package)的情况下,ClassLoader只可能调用你的类中的public static方法。至于返回值以及参数也是ClassLoader的要求。
建议好好再去读一下OO/Java中public, private, protected, static等的基本概念。
键入命令行java aClass后,通过classLoader载入aClass类,寻找有无static void main(String [] args)这个方法,有,执行之,无,返回信息并退出。还有,执行任何类型的java程序,都要指定它的classpath的,否则是无法找到你的java程序的。
所以我认为答案为:b,e你还分不清楚public static, protected static ,private static有什么区别,请自己参考文档!
private static void main(String[] args) { // 只要有static, private也可以运行
System.out.println("This is a test");
} private int main(String a) { // 非void返回值,参数可以是除String[]之外任何类型
System.out.println(a);
return 1;
} public void main(String a, String b) { //void 返回值,参数可以是除String[]任何类型
System.out.println(a + b);
}
}