我使用的jdk版本是:java version "1.6.0_23"
运行结果:
(命令行):[b][color=orange]编译时错误[/color][/b]
[quote]
TestMain.java:9: 已在 com.test.TestMain 中定义 main(java.lang.String[])
public static void main(String[] args) {
^
1 错误
[/quote]
eclipse中运行结果:
[quote]
[color=red]
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Duplicate method main(String[]) in type TestMain
at com.test.TestMain.main([u]TestMain.java:5[/u])
[/color][/quote]
我用jdk.1.5.0去测试:
(命令行):[b][color=orange]编译时错误[/color][/b]
运行结果:
[quote][color=red]TestMain.java:9: main(java.lang.String[]) is already defined in com.test.TestMain
public static void main( String[] args) {[/color] ^[/quote]
测试结果两个版本一样:
输出:main start 1
测试结果两个版本一样:
输出:main start 1
main start 2 Echo test.
更换重载方法里的参数类型(一个为String[],一个为boolean):
测试结果两个版本一样:
输出:main start 1
更换重载方法里的参数类型(一个为Integer[],一个为boolean):
输出(命令行):[b][color=orange]编译时错误[/color][/b]
1.5.0:
[quote]
TestMain.java:5: cannot find symbol
symbol : class Interger
location: class com.test.TestMain
public static void main(Interger[] args) {
^
1 error
[/quote]
(命令行):[b][color=orange]编译时错误[/color][/b]
1.6.0_23:
[quote]
TestMain.java:5: 找不到符号
符号: 类 Interger
位置: 类 com.test.TestMain
public static void main(Interger[] args) {
^
1 错误
[/quote]
eclipse输出:
[quote]
java.lang.NoSuchMethodError: main
Exception in thread "main"
[/quote]
其实很多java基础题会有编译时错误和运行错误看具体代码行,也得考虑运行环境是在命令行下,还是在集成开发环境像(Eclipse)中一样。
package com.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("main start 1");
}
public static void main(String[] args) {
System.out.println("main start 2");
}
}
运行结果:
(命令行):[b][color=orange]编译时错误[/color][/b]
[quote]
TestMain.java:9: 已在 com.test.TestMain 中定义 main(java.lang.String[])
public static void main(String[] args) {
^
1 错误
[/quote]
eclipse中运行结果:
[quote]
[color=red]
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Duplicate method main(String[]) in type TestMain
at com.test.TestMain.main([u]TestMain.java:5[/u])
[/color][/quote]
我用jdk.1.5.0去测试:
(命令行):[b][color=orange]编译时错误[/color][/b]
运行结果:
[quote][color=red]TestMain.java:9: main(java.lang.String[]) is already defined in com.test.TestMain
public static void main( String[] args) {[/color] ^[/quote]
package com.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("main start 1");
}
public static void main(String test, String[] args) {
System.out.println("main start 2" + test);
}
}
测试结果两个版本一样:
输出:main start 1
package com.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("main start 1");
main(" Echo test.", args);
}
public static void main(String test, String[] args) {
System.out.println("main start 2" + test);
}
}
测试结果两个版本一样:
输出:main start 1
main start 2 Echo test.
更换重载方法里的参数类型(一个为String[],一个为boolean):
package com.test;
public class TestMain {
public static void main(String[] args) {
System.out.println("main start 1");
}
public static void main(boolean flag) {
System.out.println("main start 2");
}
}
测试结果两个版本一样:
输出:main start 1
更换重载方法里的参数类型(一个为Integer[],一个为boolean):
package com.test;
public class TestMain {
public static void main(Interger[] args) {
System.out.println("main start 1");
}
public static void main(boolean flag) {
System.out.println("main start 2");
}
}
输出(命令行):[b][color=orange]编译时错误[/color][/b]
1.5.0:
[quote]
TestMain.java:5: cannot find symbol
symbol : class Interger
location: class com.test.TestMain
public static void main(Interger[] args) {
^
1 error
[/quote]
(命令行):[b][color=orange]编译时错误[/color][/b]
1.6.0_23:
[quote]
TestMain.java:5: 找不到符号
符号: 类 Interger
位置: 类 com.test.TestMain
public static void main(Interger[] args) {
^
1 错误
[/quote]
eclipse输出:
[quote]
java.lang.NoSuchMethodError: main
Exception in thread "main"
[/quote]
其实很多java基础题会有编译时错误和运行错误看具体代码行,也得考虑运行环境是在命令行下,还是在集成开发环境像(Eclipse)中一样。