Javaの可変と不変の違いは何ですか

目次:

Anonim

NS 主な違い Javaでの可変と不変の違いは 可変とは文字列を変更する機能を指し、不変とは文字列を変更できないことを指します。

Javaは、デスクトップ、Web、およびモバイルアプリケーションの開発に役立つ高級プログラミング言語です。一方、文字列は文字のセットです。 Javaでは、Stringオブジェクトは不変です。言い換えれば、文字列は変更できません。したがって、プログラマが文字列オブジェクトを作成すると、データと状態を変更することはできません。ただし、新しい文字列オブジェクトを作成することは可能です。全体として、可変とは変更する機能を指し、不変とは変更または変更できないことを示します。

Java、Immutable、Mutable、String

Javaで可変とは何ですか

可変とは、文字列を変更または変更する機能を指します。文字列を変更することはできませんが、文字列を変更する方法はいくつかあります。このタスクをアーカイブする一般的な方法は、StringBufferとStringBuilderを使用することです。

図1:StringBufferとStringBuilderを使用したJavaプログラム

上記のプログラムでは、sb1はStringBufferのオブジェクトです。 6行目はオブジェクトを表示し、7行目はsb1に別の文字列を追加します。 8行目はオブジェクトを表示しています。最初の文字列が変更されていることがわかります。したがって、StringBufferは文字列の変更に役立ちます。したがって、変更可能です。同様に、StringBuilderも指定された文字列を変更します。

StringBufferはスレッドセーフであるため、複数のスレッドが同時にStringにアクセスすることはできません。一方、StringBuilderはスレッドセーフではありません。したがって、複数のスレッドが同時に文字列にアクセスできます。このため、StringBuilderはStringBufferよりも高速です。

Javaで不変とは何ですか

不変とは、文字列を変更できないことを指します。プログラマーが文字列を作成するとき、それを変更することはできません。以下の例を参照してください。

図2:文字列を使用したJavaプログラム

上記のプログラムによれば、sは参照変数です。文字列定数プール内の文字列「Hello」を参照します。そして、「Hello」と「World」を組み合わせます。この場合、最初の「Hello」は変更されません。代わりに、「HelloWorld」という新しい文字列が作成されます。したがって、7行目は「Hello」のみを出力します。文字列を変更できないことを示しています。言い換えれば、文字列は不変です。

Javaでの可変と不変の違い

意味

可変とは文字列を変更する機能を指し、不変とは文字列を変更できないことを指します。

クラス

StringBufferとStringBuilderは変更可能ですが、Stringは不変です。

結論

文字列は文字のセットを参照します。 Javaでは、Stringは不変です。一方、StringBufferまたはStringBuilderを使用して文字列を変更可能にすることは可能です。 Javaでの可変と不変の主な違いは、可変とは文字列を変更する機能を指し、不変とは文字列を変更できないことを指すということです。

参照:

1.「Javaの不変文字列–Javatpoint」 Www.javatpoint.com、ここから入手できます。

Javaの可変と不変の違いは何ですか