本謎題利用了Java編程語言中一個很少被人了解的特性。請考慮下面的程序將會做些什么?
public class BrowserTest {
public static void main(String[] args) {
System.out.print("iexplore:");
http://www.google.com;
System.out.println(":maximize");
}
}
這是一個有點詭異的問題。該程序將不會做任何特殊的事情,而是直接打印iexplore::maximize。在程序中間出現(xiàn)的URL是一個語句標號(statement label)[JLS 14.7]后面跟著一行行尾注釋(end-of-line comment)[JLS 3.7]。在Java中很少需要標號,這多虧了Java沒有goto語句。在本謎題中所引用的“Java編程語言中很少被人了解的特性”實際上就是你可以在任何語句前面放置標號。這個程序標注了一個表達式語句,它是合法的,但是卻沒什么用處。
它的價值所在,就是提醒你,如果你真的想要使用標號,那么應該用一種更合理的方式來格式化程序:
public class BrowserTest {
public static void main(String[] args) {
System.out.print("iexplore:");
http: //www.google.com;
System.out.println(":maximize");
}
}
這就是說,我們沒有任何可能的理由去使用與程序沒有任何關系的標號和注釋。
本謎題的教訓是:令人誤解的注釋和無關的代碼會引起混亂。要仔細地寫注釋,并讓它們跟上時代;要切除那些已遭廢棄的代碼。還有就是如果某些東西看起來過于奇怪,以至于不像對的,那么它極有可能就是錯的。
    
   
              
              public class BrowserTest {
public static void main(String[] args) {
System.out.print("iexplore:");
http://www.google.com;
System.out.println(":maximize");
}
}
這是一個有點詭異的問題。該程序將不會做任何特殊的事情,而是直接打印iexplore::maximize。在程序中間出現(xiàn)的URL是一個語句標號(statement label)[JLS 14.7]后面跟著一行行尾注釋(end-of-line comment)[JLS 3.7]。在Java中很少需要標號,這多虧了Java沒有goto語句。在本謎題中所引用的“Java編程語言中很少被人了解的特性”實際上就是你可以在任何語句前面放置標號。這個程序標注了一個表達式語句,它是合法的,但是卻沒什么用處。
它的價值所在,就是提醒你,如果你真的想要使用標號,那么應該用一種更合理的方式來格式化程序:
public class BrowserTest {
public static void main(String[] args) {
System.out.print("iexplore:");
http: //www.google.com;
System.out.println(":maximize");
}
}
這就是說,我們沒有任何可能的理由去使用與程序沒有任何關系的標號和注釋。
本謎題的教訓是:令人誤解的注釋和無關的代碼會引起混亂。要仔細地寫注釋,并讓它們跟上時代;要切除那些已遭廢棄的代碼。還有就是如果某些東西看起來過于奇怪,以至于不像對的,那么它極有可能就是錯的。

