意思是 Java 难题
以前一直觉得C++语法复杂,Java简单。其实,只要程序员愿意,一样可以写出晦涩难懂的烂Java程序。
Java Puzzle,就是一些大家不常注意到的语法细节。
例如:
public class Confusing ...{
public Confusing(Object o) ...{
System.out.println("object");
}
public Confusing(double[] array) ...{
System.out.println("double array");
}
public static void main(String[] args) ...{
new Confusing(null);
}
}
问:输出什么?
a) object b) double array c) won't compile d) other
答:这个题输出double array。题目中两个构造函数都符合要求,因为null可以是Object,也可以是double[],这时Java会选择类型最匹配的。所以选double array。