今日、Java で文字列が null 文字で終了することを読みました。しかし、文字列の長さは文字列クラスの長さ変数によって既に維持されているため、なぜそれが必要なのですか? だから、私にとってはちょっと奇妙なことです。誰かが私にそれを明確にしてください。
ありがとう
今日、Java で文字列が null 文字で終了することを読みました。しかし、文字列の長さは文字列クラスの長さ変数によって既に維持されているため、なぜそれが必要なのですか? だから、私にとってはちょっと奇妙なことです。誰かが私にそれを明確にしてください。
ありがとう
Java 文字列は null で終了しません。それらは の長さで終わりlength
ます。Java 文字列の最後の文字を作成できますが\0
、それによって文字列が自動的に終了するわけではありません。の長さは12<\0>45
、C のように 2 ではなく 5 のままです。
多くのライブラリと API は null で終了する文字列を想定しているため、長さフィールドを持ち、文字列を null で終了するというこの戦術がよく使用されます。
つまり、長さを別々に保つことでパフォーマンスが向上し、文字列のコピーを作成することなく、文字列を API に直接渡すことができます。要するに、バイトの費用だけで 2 つの世界のベストです。