Skillnad Mellan String StringBuffer Och StringBuilder I Java

Innehållsförteckning:

Skillnad Mellan String StringBuffer Och StringBuilder I Java
Skillnad Mellan String StringBuffer Och StringBuilder I Java

Video: Skillnad Mellan String StringBuffer Och StringBuilder I Java

Video: Skillnad Mellan String StringBuffer Och StringBuilder I Java
Video: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, December
Anonim

Nyckelskillnad - String vs StringBuffer vs StringBuilder i Java

String, StringBuffer och String Builder är klasser i Java. Sträng används ofta i Java-programmering. När ett objekt av String har skapats är det inte möjligt att ändra dem. Varje gång en förändring sker i strängen skapas en ny sträng. Även om det är en sammankoppling till en befintlig sträng skapar den en ny sträng. Detta orsakar minnesförlust. Klasserna StringBuffer och StringBuilder i Java används för att ändra String. Huvudskillnaden mellan String, StringBuffer och StringBuilder i Java är att String är en klass för att skapa ett objekt av typen String som är en sekvens av tecken, StringBuffer är en klass som används för att ändra strängar som ger trådsäkerhet, och StringBuilder är en klass som används för att modifiera strängar som inte ger trådsäkerhet.

INNEHÅLL

1. Översikt och nyckelskillnad

2. Vad är sträng i Java

3. Vad är StringBuffer i Java

4. Vad är StringBuilder i Java

5. Likheter mellan String StuffBuffer och StringBuilder i Java

6. Jämförelse vid sida - String vs StringBuffer vs StringBuilder i Java i tabellform

7. Sammanfattning

Vad är sträng i Java?

Strängklassen är i java.lang-paketet. Varje gång programmeraren skapar en sträng är det ett objekt av typen String. Strängar är oföränderliga, vilket betyder att när objektet skapas kan det inte ändras. Objekt som skapats med hjälp av omslagsklasser som heltal, byte, flyt, dubbel är också oföränderliga. En strängbokstav är bifogad i dubbla citat. t.ex. “Hello World”. Varje gång en sträng bokstavligen skapas kontrollerar Java Virtual Machine (JVM) strängkonstantpoolen. Om strängen finns returneras en referens till strängens konstanta pool. Om det är en ny sträng skapas det objektet i strängens konstanta pool.

Skillnad mellan String StringBuffer och StringBuilder i Java
Skillnad mellan String StringBuffer och StringBuilder i Java

Figur 01: Java-program med String, StringBuffer och StringBuilder

Se kod nedan.

Sträng s1 = “Hej”;

s1 = s1 + “Värld”;

System.out.println (s1);

I det första uttalandet hänvisar s1 till "Hej" i String-konstantpoolen. I det andra uttalandet ändrar inte JVM den befintliga strängen. Istället skapar den en ny sträng som "Hello World" och s1 hänvisar nu till den nya strängen. Det spännande "Hello" -objektet finns fortfarande i strängkonstantpoolen.

Om det finns en kod som är, Sträng s1 =”Hej”;

Sträng s2 = s1;

s1, s2 båda hänvisar till strängobjektet “Hej”.

Vad är StringBuffer i Java?

StringBuffer-klassen används för att göra String-objekt muterbara. Därför kan dessa objekt modifieras. StringBuffer definierar fyra konstruktörer. StringBuffer (), StringBuffer (int storlek), StringBuffer (String str), StringBuffer (charSequence ch)

Se koden nedan, StringBuffer s1 = ny StringBuffer (“Hej”);

s1.append (“Värld”);

System.out.println (s1);

I uttalande 1 hänvisar s1 till "Hello" -objektet i en hög. Objektet kan muteras eftersom det skapas med StringBuffer. I uttalande 2 läggs "World" till samma "Hello" -strängsobjekt.

Strängobjekt som skapats med StringBuffer-klassen kan spara minne. StringBuffer ger trådsäkerhet eftersom två trådar inte kan komma åt samma metod i StringBuffer-klassen samtidigt. Trådsäkerhet minskar prestanda för StringBuffer. StringBuffer-klassen innehåller metoder som append (), insert (), reverse (), replace ().

Vad är StringBuilder i Java?

StringBuilder-klassen används för att göra String-objekt muterbara. Därför kan dessa objekt modifieras. Funktionaliteten liknar StringBuffer, men detta ger inte trådsäkerhet. StringBuilder har konstruktörer som StringBuilder (), StringBuilder (int storlek), StringBuilder (String str).

Se koden nedan.

StringBuilder s1 = ny StringBuilder (“Hej”);

s1.append (“Värld”);

System.out.println (s1);

I uttalande 1 hänvisar s1 till "Hello" -objektet i en hög. Objektet kan ändras eftersom det skapas med StringBuilder. I uttalande 2 läggs "World" till samma "Hello" -strängsobjekt. Det finns ingen skapelse av helt nytt String-objekt.

Strängobjekt som skapats med StringBuilder-klassen kan spara minne. Till skillnad från StringBuffer ger StringBuilder inte trådsäkerhet eftersom två trådar kan komma åt samma metod i StringBuilder-klassen samtidigt. StringBuilder-klassen innehåller metoder som append (), insert (), reverse (), replace ().

Vad är likheten mellan String, StringBuffer och StringBuilder i Java?

Allt kan användas för att skapa strängar

Vad är skillnaden mellan String StringBuffer och StringBuilder i Java?

Skilja artikeln mitt före bordet

String vs StringBuffer vs StringBuilder

Sträng Strängen är en Java-klass som används för att skapa ett objekt av typen String, som är en sekvens av tecken.
StringBuffer StringBuffer är en Java-klass som används för att skapa strängobjekt, som kan modifieras med trådsäkerhet.
StringBuilder StringBuilder är en klass som används för att skapa strängobjekt som kan modifieras utan trådsäkerhet.
Föränderlighet
Sträng Strängen är en oföränderlig klass.
StringBuffer StringBuffer är en förändrad klass.
StringBuilder StringBuilder är en förändrad klass.
Trådsäkerhet
Sträng Metoder för sträng är trådsäkra.
StringBuffer Metoder för StringBuffer är trådsäkra och synkroniserade.
StringBuilder Metoder för StringBuilder är inte säkra och inte synkroniserade.
Prestanda
Sträng Strängen är snabb.
StringBuffer StringBuffer är långsam.
StringBuilder StringBuilder är snabb.

Sammanfattning - String vs StringBuffer vs StringBuilder i Java

String, StringBuffer och StringBuilder verkar vara desamma, men de har olika betydelser. Alla dessa är Java-klasser. Skillnaden mellan String, StringBuffer och StringBuilder i Java är att String är klass för att skapa ett objekt av typen String, vilket är en uppsättning tecken, StringBuffer är en klass som används för att ändra strängar och ge trådsäkerhet, medan StringBuilder är en klass som används för att modifiera strängar som inte ger trådsäkerhet.

Ladda ner PDF String vs StringBuffer vs StringBuilder i Java

Du kan ladda ner PDF-versionen av den här artikeln och använda den för offlineändamål enligt citat. Ladda ner PDF-versionen här Skillnaden mellan String StringBuffer och StringBuilder i Java

Rekommenderas: