String爲何設計成final類型?

String被定義成final類型,這是衆人周知。但是爲何要定義成final類型呢?java

一個解釋是 main()方法的須要,main(String[] args)的參數String[] args若是是非final類,而又有類繼承了String類,在運行main()時,傳入String[]參數,這時的繼承就沒什麼意義。安全

還有一個解釋是性能的須要,說若是類定義成final,全部的方法都是內聯,性能會比非final類提升50%。性能

還有說是安全性的須要,Java設計出於安全性的考慮,不變的數據對於線程安全是有用的。spa



繼續討論見: http://stackoverflow.com/questions/2068804/why-is-string-final-in-java線程

相關文章
相關標籤/搜索