Różnica Między StringBuffer I StringBuilder

Różnica Między StringBuffer I StringBuilder
Różnica Między StringBuffer I StringBuilder

Wideo: Różnica Między StringBuffer I StringBuilder

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

StringBuffer vs StringBuilder

Java to bardzo popularny język zorientowany obiektowo. W języku Java klasa String służy do przechowywania sekwencji znaków, których nie można modyfikować (po zainicjowaniu). Alternatywnie język programowania Java udostępnia dwa typy modyfikowalnych sekwencji znaków. Oznacza to, że gdy programiści muszą zmodyfikować określony String (po zainicjowaniu), muszą użyć klasy StringBuffer lub klasy StringBuilder zamiast klasy String. StringBuffer został wprowadzony w JDK 1.0, a klasa StringBuilder została wprowadzona w JDK 1.5, właściwie jako zamiennik klasy StringBuffer (dla środowisk jednowątkowych).

Co to jest StringBuffer?

Klasa StringBuffer została wprowadzona w JDK 1.0. Klasa StringBuffer należy do pakietu java.lang i jest dziedziczona z ogólnego obiektu java.lang.object. Programiści nie mogą go dalej rozszerzać, ponieważ jest to klasa końcowa. Klasa StringBuffer implementuje interfejsy Serializable, Appendable i CharSequience. Obiekt klasy StringBuffer może zawierać sekwencję znaków, która jest modyfikowalna i bezpieczna wątkowo. Oznacza to, że jest bardzo podobny do obiektu String, ale sekwencję znaków (długość i zawartość) można zmienić w dowolnym momencie po zainicjowaniu obiektu StringBuffer. Należy to jednak zrobić przy użyciu określonych metod dostarczonych przez klasę StringBuffer. W klasie StringBuffer istnieją dwie podstawowe operacje. Są one udostępniane przez metody append () i insert (). Te metody są przeciążone,dzięki czemu mogą akceptować dane dowolnego typu, takie jak liczby całkowite i długie. Obie metody najpierw przekształcają dowolne dane wejściowe w ciąg, a następnie dodają (dołączają lub wstawiają) znaki odpowiedniego ciągu do istniejącego obiektu Stribbuffer. Metoda append () dodaje przekonwertowany ciąg na końcu istniejącego obiektu StringBuffer, podczas gdy metoda insert () doda znaki wejściowe do określonego punktu wstawiania.

Co to jest StringBuilder?

Klasa StringBuilder została wprowadzona w JDK 1.5. StringBuilder API jest bardzo podobne do StringBuffer API. W rzeczywistości klasa StringBuilder została wprowadzona jako zamiennik klasy StringBuffer (dla aplikacji jednowątkowych). Klasa StringBuilder należy do pakietu java.lang i jest dziedziczona z ogólnego obiektu java.lang.object. Jest to klasa końcowa, więc programiści nie mogą jej rozszerzyć. Klasa StringBuilder implementuje interfejsy Serializable, Appendable i CharSequience. Obiekt klasy StringBuilder może zawierać sekwencję znaków, która jest modyfikowalna, ale nie jest bezpieczna dla wątków. Oznacza to, że jest bardzo podobny do obiektu String, ale łańcuch można zmienić w dowolnym momencie. Ale klasa StringBuilder nie zapewnia synchronizacji i dlatego jest uważana za szybszą niż użycie klasy StringBuffer. Klasa StringBuilder udostępnia metody append () i insert () o dokładnie takiej samej funkcjonalności, jak w klasie StringBuffer.

Jaka jest różnica między StringBuffer i StringBuilder?

Chociaż klasy StringBuilder i StringBuffer mogą być używane do zmiennych sekwencji znaków w Javie, mają one zasadniczą różnicę. W przeciwieństwie do klasy StringBuffer, klasa StringBuilder nie jest bezpieczna wątkowo i nie zapewnia synchronizacji. Dlatego zaleca się, aby w aplikacjach jednowątkowych zamiast klasy StringBuilder używać klasy StringBuilder, ponieważ twierdzi się, że klasa StringBuilder będzie znacznie szybsza niż klasa StringBuffer (w normalnych okolicznościach).

Zalecane: