注意一下String的比较,应该是用 equals() 而不是用 == 这个操作符,因为String 是一种Object 而不是象int,long这些主类型,用==实际比较的是两个引用的值而不是引用代表的String实际内容的值。如你在程序中定义了 String who="1",再比较 == "1"之所以会成功,是因为String是一个不变的对象,因此编译器把所有相同的字面常量(如 "1")都放在同一个地方,因此它们的引用的比较也是对的。