2014-08-31 18 views
0

比方說,我有一個靜態最終String []數組是隻讀的,但不會被修改只要受保護,是私有的最終String []數組線程安全嗎?

private static final String[] myArray = { "Col1", "Col2", "Col3" }; 

如果我可以保證沒有線程會再寫任何值到這個陣列,並只讀他們,這是實現好嗎和線程安全?或者我會遇到波動問題?

+0

嘗試只從資源讀取時沒有任何線程問題。這可以。 – 2014-08-31 16:45:56

回答

4

是的,只要沒有任何東西寫入數組就可以。它會在類型初始化時被初始化,所以所有的線程都會「看到」這些值。

爲了便於閱讀,您可能需要考慮使用不可變集合(例如Guava中的那些集合)。否則,您可能會發現雖然沒有更改原始代碼中陣列的內容,但維護修補程序會更改它...