2014-05-01 17 views
0

我有這段代碼,我試圖找出它究竟做了什麼,我很肯定作者很困惑,請解釋一下這些語句正在採取任何影響。 像開始一個undefined主題那實際上做了什麼,但在空的線程中運行? 發現類時發生了什麼並不是返回值必須被存儲到某個地方,還是以某種神奇的方式加載到類中?Java Thread和class.loader/class.forname幫助理解

public SomeClass() { 
    try { 
     Class.forName("SomeclassToBeFound"); 
    } catch (ClassNotFoundException e) {e.printStackTrace();} 

    new Thread().start(); 
} 

我將不勝感激一些幫助

+0

請看看[Class.forName()]的實際用法是什麼(http://stackoverflow.com/questions/8053095/what-is-the-actual-use-of-class-fornameoracle- JDBC驅動程序 - 一個OracleDriver,同時) – Braj

回答

2

這就是此代碼段中發生的事情。

1)新線程被創建,它沒有做任何事情。它開始和結束,因爲在運行方法中沒有工作要做。

2)Class.forName(「SomeclassToBeFound」);如果類沒有被類加載器加載,那麼該行將加載該類。但是如果班級已經加載,它將不會有任何影響。

希望這會有所幫助。