java.lang.String
がfinal
行われている理由私は思ったんだけど?それが継承されるのを防ぐのですか?どうして?
答えて
ありがとうございます。これにより、セキュリティマネージャとクラスローダーのコードは、悪意のあるサブクラスを実際に処理していることを心配することなくString型で作業できるようになります。
文字列クラスを拡張しないでください。文字列を操作する他のクラスに独自のメソッドを書くだけです。
理由は、文字列クラスは、他のトランザクションで不明な副作用を持つメソッドを再定義する可能性があるため、改ざんすべきではありません。
質問は「理由」ではないと思います。何が... – StaxMan
@StaxManあなたの権利...私はちょうどいいえより少しを追加しました。 – Bnjmn
それが理由であれば、クラス全体ではなく、オーバーライドされないようにするfinalメソッドだけを宣言することができます。どう思いますか? – Rendicahya
既に言及されたセキュリティの面を除いて、私はパフォーマンスがもう一つの重要な理由であったと考えています。古いJVMの場合、特に最終クラス(すべてのメソッドが最終的に定義されている)では、オンザフライでコードをインライン化するほうがはるかに簡単でした。 Stringは、最も頻繁に使用されるオブジェクトの1つで、多くのアプリケーションの全体的なパフォーマンスに影響します。これは、改善が全体的な効果を大きくする領域と見なされました。
- 1. ローカル変数はなぜ最終的なのですか?
- 2. 最終的なキーワードは何ですか?
- 3. Java enumを最終的に使用できないのはなぜですか?
- 4. なぜこれは最終的に実行されないのですか?
- 5. クラスを最終的にスピードアップさせるのはなぜですか?
- 6. 最終的なStringをJavaで定義するのは意味がありますか?
- 7. 最終的なクラスはすべて不変ですか?
- 8. Xcodeシンボルアイコン...最終的なリスト?
- 9. 最終的な変数
- 10. 最終的な静的な文字列は、静的な最終的な文字列より効率的ですか?
- 11. この静的な最終変数は、単一スレッドセーフではなぜですか?このサイトを読ん
- 12. 最終的にこのような状況で実行されないのはなぜですか?
- 13. ANTLRは最終的なパーサークラスを生成できますか?
- 14. 最終的なArrayListの意味は何ですか?
- 15. CDI Beanは、最終的な方法
- 16. std :: string :: operator +()でMyclass :: operator string()を明示的に呼び出す必要があるのはなぜですか?
- 17. なぜラッパークラス、文字列、...最終ですか?
- 18. 「hash( 'md5'、 'string')」が「md5( 'string')」よりも高速なのはなぜですか?
- 19. c#コピーしたファイルの最終バイトが異なるのはなぜですか?
- 20. なぜ内部クラスはプライベートな最終メソッドをオーバーライドできますか?
- 21. JavaでString [] argsが必要なのはなぜですか?
- 22. 抽象クラスには最終的なメソッドがありますか?
- 23. 最終的な値はオブジェクトのサイズを増やしますか?
- 24. Eclipseで非最終的な静的変数を検索する
- 25. 最終的なクラス変数をGWTで静的にする
- 26. JQueryでMVCの最終的なパスを返しますか?
- 27. なぜパディング - 左:50%が最終的に機能しなくなるのですか?
- 28. WebBrowserで最終的なフォームをHTML本文にするには?
- 29. 最終的にリソースを閉じる必要があるのはなぜですか?
- 30. 最終的な上限を持つワイルドカード
[なぜJavaで文字列が終わるのですか?](http://stackoverflow.com/questions/2068804/why-is-string-final-in-java) –