文字列オブジェクトと文字列リテラルの間の違い。new String("abc") と "abc" で定義されます。それぞれ、インターンとオブジェクト作成のメカニズムにあります。
文字列リテラルは、以前に遭遇した文字列のプールに文字列を保存するプロセスであるインターンの潜在的な利点を享受します。これにより、文字列を新たに作成するのではなく参照によってアクセスできるため、効率が向上します。
ここで、a と b は、true で表される同じインターン文字列を参照します。
対照的に、new String() で作成された文字列オブジェクトは、それぞれ独自の固有のエンティティとしてインスタンス化されます。 Reference.
この場合、c と d は同じ文字シーケンスを含んでいるにもかかわらず、別個の文字列オブジェクトを参照しているため、== は false を返します。
コードを最適化するには、文字列リテラルが推奨されます。これらはより読みやすく、可能な場合はインターニングを利用してコンパイラーがコードを最適化できるようになります。
以上が文字列オブジェクトと文字列リテラル: 違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。