原文:Java中String類為什么被設計為final?

Java中String類為什么被設計為final 首先,String是引用類型,也就是每個字符串都是一個String實例。通過源碼可以看到String底層維護了一個byte數組:private final byte value JDK 中為byte數組,並非網上所說的char數組 。雖然該數組被修飾為final,但這並不能保證數組的數據不會變化,因此還需要聲明為private防止被其他類修改數據。 ...

2019-06-25 20:03 0 1267 推薦指數:

查看詳情

javaString為什么要設計final

1 將方法或聲明為final主要目的是:確保它們不會在子類改變語義。Stringfinal,這意味着不允許任何人定義String的子類。 String基本約定中最重要的一條是immutable。 但是假如String沒有聲明為final ...

Mon Sep 11 19:04:00 CST 2017 0 2817
javastring為什么要設計final

各種不同的理解 1 將方法或聲明為final主要目的是:確保它們不會再子類改變語義。Stringfinal,這意味着不允許任何人定義String的子類。換言之,如果有一個String的引用,它引用的一定是一個String對象,而不可能是其他的對象 ...

Thu Jul 21 06:55:00 CST 2016 0 2754
Java String為什么是final的?

答:1.為了實現字符串池 2.為了線程安全 3.為了實現String可以創建HashCode不可變性 首先你要理解final的用途,在分析String為什么要用final修飾,final可以修飾,方法和變量,並且被修飾的 ...

Wed Feb 19 22:35:00 CST 2020 0 1054
為什么String設計final修飾?

String 是最常用的之一,為了效率,禁止被繼承和重寫 為了安全。String 中有很多調用底層的本地方法,調用了操作系統的 API,如果方法可以重寫,可能被植入惡意代碼,破壞程序。Java 的安全性也體現在這里。 來一道刷了進BAT的面試題? ...

Tue Nov 19 17:28:00 CST 2019 0 829
JavaString為什么要設計finalString真的不可變嗎?其他基本類型的包裝也是不可變的嗎?

最近突然被問到String為什么被設計為不可變,當時有點懵,這個問題一直像bug一樣存在,竟然沒有發現,沒有思考到,在此總結一下。 1.String的不可變Stringfinal修飾,是不可繼承和修改的。當一個String變量被第二次賦值時,不是在原有內存地址上修改數據,而是在內存重新 ...

Thu Jul 26 18:24:00 CST 2018 0 935
JavaString為什么是final

final概念:   如果一個被聲明為final,意味着它不能再派生出新的子類,不能作為父親被繼承。因此,一個不能既被聲明為abstract,又被聲明為final。   將變量或方法聲明為final,可以保證它們在使用不被改變。其初始化可以在兩個地方:     一是其定義處 ...

Tue May 31 17:00:00 CST 2016 0 2763
JavaString為什么設置成final

String怎么保證不可變? 雖然final代表了不可變,但僅僅是引用地址不可變,並不代表了數組本身不會變,如: final也可以將數組本身改變的,這個時候,起作用的還有private,正是因為兩者保證了String的不可變性。 String為什么保證不可變? 1.為了實現 ...

Wed Apr 17 00:16:00 CST 2019 0 1805
Java問題解讀系列之String相關---String為什么是final的?

今天看到一篇名為《Java開發崗位面試題歸類匯總》的博客,戳進去看了一下題目,覺得有必要夯實一下基本功了,所以打算邊學邊以博客的形式歸納總結,每天一道題, 並將該計划稱為java問題解讀系列,今天的題目是:String為什么是final的? 在回答這個問題之前,我覺得有必要搞清楚final ...

Sun Mar 12 09:52:00 CST 2017 3 23158
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM