Java での "new String(...)" の使用
コード構造 "new String(...) が見つかった場合)」を Java で使用するには、その目的と効果を理解することが重要です。単純な文字列割り当て (例: "s = "Hello World";") とは異なり、この構文は "new" 演算子を利用して、文字列定数で初期化することで String オブジェクトを作成します。
目的"new String(...)"
文字列定数は定数プールに存在しますが、"new String(...)" の動作はString(...)" は、予想されるほど単純ではありません。新しい String オブジェクトが作成されますが、必ずしもヒープに新しいメモリが割り当てられるわけではありません。
強制コピーの警告
よくある誤解の 1 つは、次のとおりです。 「new String(...)」は、内部文字配列の個別のコピーを強制します。ただし、この動作は実装に依存しており、文書化されていません。たとえば、「small=new String(huge.substring(10,20))」によってこれを実現しようとすると、元の文字配列全体が保持され、大量のメモリが消費される可能性があるため、予期しない結果が生じる可能性があります。
別個のコピーの解決策
文字配列の真に別個のコピーを確保するには、以下を使用する必要があります。 「新しい文字列(huge.substring(10,20).toCharArray())」これには 2 回のメモリ コピー ("toCharArray()" で 1 回、String コンストラクターで 1 回) が必要ですが、これは実装に依存しない方法で目的の結果を達成できます。
ドキュメントを前提とする落とし穴
ドキュメントには明確性や正確性が欠けている場合があることに注意することが重要です。 「new String(...)」のドキュメントでは、「string」のコピーを作成することが示唆されており、これはサポート文字配列のコピーも意味します。ただし、Apache Harmony の実装で見られるように、これは常に当てはまるわけではありません。
結論
次の "new String(...)" のニュアンスを理解する潜在的な落とし穴を回避するには Java が不可欠です。常に意図した動作が得られるとは限りませんが、一部のシナリオでは特定の目的を果たします。ただし、この構文は実装に依存する性質があることに注意して、慎重に作業を進めることをお勧めします。
以上がJava で「new String(...)」を使用する必要があるのはいつ、なぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

jvm'sperformanceiscompetitivewitherruntimes、sped、safety、andproductivityの提供

javaachievesplatformedentenceTheThejavavirtualMachine(JVM)、avainwithcodetorunonanyplatformwithajvm.1)codescompiledintobytecode、notmachine-specificcode.2)

thejvmisanabstractcomputingMachineCrucialForrunningJavaProgramsDuetoitsPlatForm-IndopentInterChitecture.Itincludes:1)ClassLoaderForloadingClasses、2)Runtimedataareaforforforatastorage、3)executionEngineWithinterter、Jitcompiler、およびGarbagecolfecolfecolfececolfecolfer

jvmhasacloserelationshiptheosasittrantesjavabytecodecodecodecodecodecodecodecodecodecodecodecodecodetructions、manageSmemory、およびhandlesgarbagecollection.thisrelationshipallowsjavatorunonvariousosenvirnments、Butalsedentsはspeedifediferentjvmbeviorhiorsandosendisfredediferentjvmbehbehioorysando

Javaの実装「Write and、Run Everywherewhere」はBytecodeにコンパイルされ、Java仮想マシン(JVM)で実行されます。 1)Javaコードを書き、それをByteCodeにコンパイルします。 2)JVMがインストールされたプラットフォームでByteCodeが実行されます。 3)Javaネイティブインターフェイス(JNI)を使用して、プラットフォーム固有の機能を処理します。 JVMの一貫性やプラットフォーム固有のライブラリの使用などの課題にもかかわらず、Woraは開発効率と展開の柔軟性を大幅に向上させます。

javaachievesplatformentenceTheTheTheJavavirtualMachine(JVM)、CodetorunondifferentoperatingSystemswithOutModification.thejvmcompilesjavacodeplatform-IndopentedbyTecodeを承認することを許可します

javaispowerfulfulduetoitsplatformindepentence、object-orientednature、richstandardlibrary、performancecapability、andstrongsecurityfeatures.1)platformendependenceallowseplicationStorunonaydevicesupportingjava.2)オブジェクト指向のプログラマン型

上位のJava関数には、次のものが含まれます。1)オブジェクト指向プログラミング、サポートポリ型、コードの柔軟性と保守性の向上。 2)例外処理メカニズム、トライキャッチ式ブロックによるコードの堅牢性の向上。 3)ゴミ収集、メモリ管理の簡素化。 4)ジェネリック、タイプの安全性の向上。 5)コードをより簡潔で表現力豊かにするためのAMBDAの表現と機能的なプログラミング。 6)最適化されたデータ構造とアルゴリズムを提供するリッチ標準ライブラリ。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

Dreamweaver Mac版
ビジュアル Web 開発ツール
