當我在Java中處理線程概念時,我看到了Thread.java源文件。我注意到當setName()
方法將字符串分配給稱爲"name[]"
的字符數組。 Java具有String數據類型的特性,那麼他們爲什麼使用字符數組。爲什麼Thread類中的setName分配給一個字符數組?爲什麼不是一個String?
在源文件時,它被初始化一樣,
private char name[]; // why not "private String name;"
在setName()
方法,
public final void setName(String name) {
checkAccess();
this.name = name.toCharArray();
}
請幫助我。提前致謝。
你可以支持一些參考或東西嗎?我在Thread.java或Thread.c中沒有看到任何東西(在'native'樹中)讓本機代碼可以訪問該名稱。如果它是從本機代碼訪問的,我期望在最後看到一個空字符。這似乎是猜測。 –
這是很好的迴應,謝謝。我可以考慮,這是其中一個原因,java不是純粹的面向對象的語言嗎? – kik
@kik:**整個**「Java是純粹的OO語言」問題是**無用的**,因爲沒有人問過它能夠提供一個有用的定義,說明究竟是什麼構成了「純粹的OO語言」。我很想被證明是錯誤的,但到目前爲止它還沒有發生。 –