答:1.為了實現字符串池 2.為了線程安全 3.為了實現String可以創建HashCode不可變性 首先你要理解final的用途,在分析String為什么要用final修飾,final可以修飾類,方法和變量,並且被修飾的類 ...
今天看到一篇名為 Java開發崗位面試題歸類匯總 的博客,戳進去看了一下題目,覺得有必要夯實一下基本功了,所以打算邊學邊以博客的形式歸納總結,每天一道題, 並將該計划稱為java問題解讀系列,今天的題目是:String類為什么是final的 在回答這個問題之前,我覺得有必要搞清楚final到底是個什么 一 理解final 望文生義,final意為 最終的,最后的 ,我理解為 不能被改變的 ,它可以 ...
2017-03-12 01:52 3 23158 推薦指數:
答:1.為了實現字符串池 2.為了線程安全 3.為了實現String可以創建HashCode不可變性 首先你要理解final的用途,在分析String為什么要用final修飾,final可以修飾類,方法和變量,並且被修飾的類 ...
1 將方法或類聲明為final主要目的是:確保它們不會在子類中改變語義。String類是final類,這意味着不允許任何人定義String的子類。 String基本約定中最重要的一條是immutable。 但是假如String沒有聲明為final ...
Java中String類為什么被設計為final 首先,String是引用類型,也就是每個字符串都是一個String實例。通過源碼可以看到String底層維護了一個byte數組:private final byte[] value;(JDK9中為byte數組,並非網上所說的char數組 ...
。 在說說為啥String類設置為final類型。 fianl類型,是一種不能被修改的類型。 試想 ...
1 主要是為了“效率” 和 “安全性” 的緣故。若 String允許被繼承, 由於它的高度被使用率, 可能會降低程序的性能,所以String被定義成final。 2、不允許其他類繼承。這個應該不是最終原因,但這里權且也當成是一個原因。 3、 String類中 ...
最佳答案: 主要是為了“效率” 和 “安全性” 的緣故。若 String允許被繼承, 由於它的高度被使用率, 可能會降低程序的性能,所以String被定義成final。 其它答案一: String和其他基本類型不同,他是個對象類型.既然是對象類型,如果是在靜態方法下是必須調用靜態方法或值 ...
上面代碼的執行結果為 下面是我在看了別人的文章后,結合對於C/C++的了解后得出的分析: 對於修飾變量的final關鍵字可以理解為C語言中的const關鍵字,表明了變量是一個常量。對於String類的底層實現,和C++中的類似,也可以理解為對const char的封裝。因此a,b,c ...
我們知道String對象是不可變的,是指String內部的東西是不變的 String a = "xxx"; 這里a還是可以重新引用別的:a = "yyy"; 但是加上final修飾: final String a = "xxxx"; 這時就不可以:a = "yyy"; 總結一下 ...