博文

全世界所有程序员都会犯的错误(2005-12-27 21:54:00)

摘要:        当年,国际巨星成龙的「龙种」曝光,众人指责他对不起娇妻林凤娇,逼得他出面召开记者会,向世人自白他犯了「全世界所有男人都会犯的错误」。从来没犯过这种错误的我,也因此常常认为自己不是个男人。 虽然没犯过「全世界所有男人都会犯的错误」,但是我倒是曾经犯了「全世界所有程序员都会犯的错误」。不管使用何种语言,全世界所有程序员都一定犯过这种错误,那就是:太依赖编译器,却不知道编译器做了哪些事。 一般来说,越高阶的程序语言,会提供越多语法上的便利,以方便程序撰写,这就俗称为syntactic sugar,我称其为「语法上的甜头」。虽说是甜头,但是如果你未能了解该语法的实质内涵,很可能会未尝甜头,却吃尽苦头。 不久前,我收到一个电子邮件,读者列出下面的Java程序,向我求救。看过这个程序之后,我确定这又是一个「全世界所有程序员都会犯的错误」。 // 程序1class Singleton {  private static Singleton obj = new Singleton();  public static int counter1;  public static int counter2 = 0;  private Singleton() {    counter1++;    counter2++;  }  public static Singleton getInstance() {    return obj;  }} // 程序2public class MyMain {  public static void main(String[] args) {    Singleton obj = Singleton.getInstance();    System.out.println("obj.counter1=="+obj.counter1);    System.out.println("obj.counter......

阅读全文(1864) | 评论:0