Różnica Między StringBuffer String A StringBuilder W Javie

Spisu treści:

Różnica Między StringBuffer String A StringBuilder W Javie
Różnica Między StringBuffer String A StringBuilder W Javie

Wideo: Różnica Między StringBuffer String A StringBuilder W Javie

Wideo: Różnica Między StringBuffer String A StringBuilder W Javie
Wideo: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, Listopad
Anonim

Kluczowa różnica - String vs StringBuffer vs StringBuilder w Javie

String, StringBuffer i String Builder to klasy w Javie. Ciąg jest szeroko stosowany w programowaniu w języku Java. Po utworzeniu obiektu String nie można ich zmienić. Za każdym razem, gdy następuje zmiana w ciągu, tworzy nowy ciąg. Nawet jeśli jest to konkatenacja z istniejącym ciągiem, tworzy nowy ciąg. Powoduje to marnotrawstwo pamięci. Klasy StringBuffer i StringBuilder w języku Java służą do modyfikowania ciągu. Kluczową różnicą między String, StringBuffer i StringBuilder w Javie jest to, że String jest klasą do tworzenia obiektu typu String będącego sekwencją znaków, StringBuffer jest klasą używaną do modyfikowania ciągów znaków, która zapewnia bezpieczeństwo wątków, a StringBuilder jest klasa, która jest używana do modyfikowania ciągów, które nie zapewniają bezpieczeństwa wątków.

ZAWARTOŚĆ

1. Omówienie i kluczowe różnice

2. Co to jest String w Javie

3. Co to jest StringBuffer w Javie

4. Co to jest StringBuilder w Javie

5. Podobieństwa między StringBuffer i StringBuilder w Javie

6. Bezpośrednie porównanie - String vs StringBuffer vs StringBuilder w Java w formie tabelarycznej

7. Podsumowanie

Co to jest ciąg znaków w Javie?

Klasa String znajduje się w pakiecie java.lang. Za każdym razem, gdy programista tworzy String, jest to obiekt typu String. Ciągi znaków są niezmienne, co oznacza, że po utworzeniu obiektu nie można go zmienić. Obiekty utworzone przy użyciu klas otoki, takich jak Integer, Byte, Float, Double, są również niezmienne. Literał łańcuchowy jest ujęty w podwójne cudzysłowy. np. „Hello World”. Za każdym razem, gdy tworzony jest literał ciągu, wirtualna maszyna języka Java (JVM) sprawdza pulę stałych ciągów. Jeśli String istnieje, zwracane jest odwołanie do puli stałej String. Jeśli jest to nowy ciąg, ten obiekt jest tworzony w puli stałej typu String.

Różnica między StringBuffer String a StringBuilder w Javie
Różnica między StringBuffer String a StringBuilder w Javie

Rysunek 01: Program Java wykorzystujący String, StringBuffer i StringBuilder

Zobacz poniższy fragment kodu.

String s1 = „Witaj”;

s1 = s1 + „Świat”;

System.out.println (s1);

W pierwszej instrukcji s1 odnosi się do „Hello” w puli stałej typu String. W drugiej instrukcji JVM nie zmienia istniejącego ciągu. Zamiast tego tworzy nowy ciąg jako „Hello World”, a s1 odwołuje się teraz do tego nowego ciągu. Wychodzący obiekt „Hello” nadal istnieje w puli stałej String.

Jeśli istnieje kod, String s1 = „Cześć”;

Ciąg s2 = s1;

s1, s2 oba będą odwoływały się do obiektu String „Hello”.

Co to jest StringBuffer w Javie?

Klasa StringBuffer służy do modyfikowania obiektów String. Dlatego te obiekty można modyfikować. StringBuffer definiuje cztery konstruktory. StringBuffer (), StringBuffer (int size), StringBuffer (String str), StringBuffer (charSequence ch)

Zapoznaj się z kodem poniżej, StringBuffer s1 = new StringBuffer („Witaj”);

s1.append („Świat”);

System.out.println (s1);

W instrukcji 1 s1 odnosi się do obiektu „Hello” w stercie. Obiekt jest zmienny, ponieważ jest tworzony za pomocą StringBuffer. W instrukcji 2 „World” jest dołączane do tego samego obiektu String „Hello”.

Obiekty typu String utworzone za pomocą klasy StringBuffer mogą oszczędzać pamięć. StringBuffer zapewnia bezpieczeństwo wątków, ponieważ dwa wątki nie mogą jednocześnie uzyskać dostępu do tej samej metody w klasie StringBuffer. Bezpieczeństwo wątków zmniejsza wydajność StringBuffera. Klasa StringBuffer zawiera metody, takie jak append (), insert (), reverse (), replace ().

Co to jest StringBuilder w Javie?

Klasa StringBuilder służy do modyfikowania obiektów String. Dlatego te obiekty można modyfikować. Funkcjonalność jest podobna do StringBuffer, ale nie zapewnia to bezpieczeństwa wątków. StringBuilder ma konstruktory, takie jak StringBuilder (), StringBuilder (int size), StringBuilder (String str).

Zapoznaj się z poniższym kodem.

StringBuilder s1 = new StringBuilder („Witaj”);

s1.append („Świat”);

System.out.println (s1);

W instrukcji 1 s1 odnosi się do obiektu „Hello” w stercie. Obiekt jest zmienny, ponieważ jest tworzony za pomocą StringBuilder. W instrukcji 2 „World” jest dołączane do tego samego obiektu String „Hello”. Nie ma tworzenia zupełnie nowego obiektu String.

Obiekty typu String utworzone za pomocą klasy StringBuilder mogą oszczędzać pamięć. W przeciwieństwie do StringBuffer, StringBuilder nie zapewnia bezpieczeństwa wątków, ponieważ dwa wątki mogą jednocześnie uzyskiwać dostęp do tej samej metody w klasie StringBuilder. Klasa StringBuilder zawiera metody, takie jak append (), insert (), reverse (), replace ().

Jakie jest podobieństwo między ciągami, StringBuffer i StringBuilder w Javie?

Wszystkie mogą być używane do tworzenia ciągów

Jaka jest różnica między StringBuffer String a StringBuilder w Javie?

Porównaj środek artykułu przed tabelą

String vs StringBuffer vs StringBuilder

Strunowy Łańcuch jest klasą Javy używaną do tworzenia obiektu typu String, który jest sekwencją znaków.
StringBuffer StringBuffer to klasa Javy używana do tworzenia obiektów typu String, które można modyfikować za pomocą funkcji bezpieczeństwa wątków.
StringBuilder StringBuilder to klasa używana do tworzenia obiektów typu string, które można modyfikować bez zabezpieczenia wątków.
Zmienność
Strunowy Ciąg jest niezmienną klasą.
StringBuffer StringBuffer to zmienna klasa.
StringBuilder StringBuilder to zmienna klasa.
Bezpieczeństwo wątku
Strunowy Metody String są bezpieczne wątkowo.
StringBuffer Metody StringBuffer są bezpieczne dla wątków i zsynchronizowane.
StringBuilder Metody StringBuilder nie są bezpieczne w wątkach i nie są zsynchronizowane.
Wydajność
Strunowy Sznurek jest szybki.
StringBuffer StringBuffer jest powolny.
StringBuilder StringBuilder jest szybki.

Podsumowanie - String vs StringBuffer vs StringBuilder w Javie

String, StringBuffer i StringBuilder wydają się być takie same, ale mają różne znaczenia. Wszystko to jest klasą Java. Różnica między String, StringBuffer i StringBuilder w Javie polega na tym, że String jest klasą do tworzenia obiektu typu String, który jest zestawem znaków, StringBuffer jest klasą używaną do modyfikowania ciągów znaków i zapewniania bezpieczeństwa wątków, podczas gdy StringBuilder jest klasa, która jest używana do modyfikowania Strings, która nie zapewnia bezpieczeństwa wątków.

Pobierz PDF String vs StringBuffer vs StringBuilder w Javie

Możesz pobrać wersję PDF tego artykułu i używać jej w trybie offline, zgodnie z notą cytowania. Pobierz wersję PDF tutaj Różnica między StringBuffer i StringBuilder w Javie

Zalecane: