Forskellen mellem String StringBuffer og StringBuilder i Java

Indholdsfortegnelse:

Forskellen mellem String StringBuffer og StringBuilder i Java
Forskellen mellem String StringBuffer og StringBuilder i Java

Video: Forskellen mellem String StringBuffer og StringBuilder i Java

Video: Forskellen mellem String StringBuffer og StringBuilder i Java
Video: Строки в Java. String, StringBuilder, StringBuffer, Wrappers. Java Professional. Урок 5 2024, November
Anonim

Nøgleforskel – String vs StringBuffer vs StringBuilder i Java

String, StringBuffer og String Builder er klasser i Java. String er meget udbredt i Java-programmering. Når først et objekt af String er oprettet, er det ikke muligt at ændre dem. Hver gang der sker en ændring af strengen, opretter den en ny streng. Selvom det er en sammenkædning til en eksisterende streng, opretter det en ny streng. Dette forårsager spild af hukommelse. StringBuffer og StringBuilder klasser i Java bruges til at ændre String. Den vigtigste forskel mellem String, StringBuffer og StringBuilder i Java er, at String er en klasse til at skabe et objekt af typen String, der er en sekvens af tegn, StringBuffer er en klasse, der bruges til at ændre Strings, der giver trådsikkerhed, og StringBuilder er en klasse, der bruges til at ændre strenge, der ikke giver trådsikkerhed.

Hvad er streng i Java?

String-klassen er i java.lang-pakken. Hver gang programmøren opretter en streng, er det et objekt af typen String. Strenge er uforanderlig betydning, når først objektet er oprettet, kan det ikke ændres. Objekter oprettet ved hjælp af wrapper-klasser såsom Integer, Byte, Float, Double er også uforanderlige. En streng bogstavelig er omgivet af dobbelte anførselstegn. for eksempel. "Hej Verden". Hver gang en streng-literal oprettes, kontrollerer Java Virtual Machine (JVM) String-konstantpuljen. Hvis strengen findes, returneres en reference til strengkonstantpuljen. Hvis det er en ny streng, oprettes objektet i strengkonstantpuljen.

Forskellen mellem String StringBuffer og StringBuilder i Java
Forskellen mellem String StringBuffer og StringBuilder i Java
Forskellen mellem String StringBuffer og StringBuilder i Java
Forskellen mellem String StringBuffer og StringBuilder i Java

Figur 01: Java-program, der bruger String, StringBuffer og StringBuilder

Se nedenstående kodestykke.

String s1=“Hej”;

s1=s1 + “Verden”;

System.out.println(s1);

I den første sætning refererer s1 til "Hej" i strengkonstantpuljen. I den anden sætning ændrer JVM ikke den eksisterende streng. I stedet opretter den en ny streng som "Hello World", og s1 refererer nu til den nye streng. Det afsluttende "Hej"-objekt eksisterer stadig i strengkonstantpuljen.

Hvis der er en kode, som er, String s1=”Hej”;

String s2=s1;

s1, s2 vil begge referere til String-objektet "Hello".

Hvad er StringBuffer i Java?

StringBuffer-klassen bruges til at gøre String-objekter mutable. Derfor kan disse objekter ændres. StringBuffer definerer fire konstruktører. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Se koden nedenfor, StringBuffer s1=new StringBuffer(“Hej”);

s1.append(“Verden”);

System.out.println(s1);

I sætning 1 refererer s1 til "Hej"-objektet i en bunke. Objektet kan ændres, fordi det er oprettet ved hjælp af StringBuffer. I sætning 2 er "Verden" tilføjet til det samme "Hej"-strengobjekt.

String-objekter oprettet med StringBuffer-klassen kan spare hukommelse. StringBuffer giver trådsikkerhed, fordi to tråde ikke kan få adgang til den samme metode i StringBuffer-klassen samtidigt. Trådsikkerhed reducerer StringBuffer-ydeevne. StringBuffer-klassen indeholder metoder såsom append(), insert(), reverse(), replace().

Hvad er StringBuilder i Java?

StringBuilder-klassen bruges til at gøre String-objekter mutable. Derfor kan disse objekter ændres. Funktionaliteten ligner StringBuffer, men dette giver ikke trådsikkerhed. StringBuilder har konstruktører såsom StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Se nedenstående kode.

StringBuilder s1=new StringBuilder(“Hej”);

s1.append(“Verden”);

System.out.println(s1);

I sætning 1 refererer s1 til "Hej"-objektet i en bunke. Objektet kan ændres, fordi det er oprettet ved hjælp af StringBuilder. I sætning 2 er "Verden" tilføjet til det samme "Hej" strengobjekt. Der er ingen oprettelse af et helt nyt String-objekt.

String-objekter oprettet med StringBuilder-klassen kan spare hukommelse. I modsætning til i StringBuffer giver StringBuilder ikke trådsikkerhed, fordi to tråde kan få adgang til den samme metode i StringBuilder-klassen samtidigt. StringBuilder-klassen indeholder metoder såsom append(), insert(), reverse(), replace().

Hvad er ligheden mellem String, StringBuffer og StringBuilder i Java?

Alle kan bruges til at oprette strenge

Hvad er forskellen mellem String StringBuffer og StringBuilder i Java?

String vs StringBuffer vs StringBuilder

String Strengen er en Java-klasse, der bruges til at skabe et objekt af typen String, som er en sekvens af tegn.
StringBuffer StringBuffer er en Java-klasse, der bruges til at skabe String-objekter, som kan modificeres med trådsikkerhed.
StringBuilder StringBuilder er en klasse, der bruges til at skabe strengobjekter, som kan ændres uden trådsikkerhed.
mutabilitet
String Strengen er en uforanderlig klasse.
StringBuffer StringBuffer er en foranderlig klasse.
StringBuilder StringBuilder er en foranderlig klasse.
Trådsikkerhed
String Methods of String er trådsikre.
StringBuffer Methods of StringBuffer er trådsikre og synkroniserede.
StringBuilder StringBuilders metoder er ikke gevindsikre og ikke synkroniserede.
Ydeevne
String Snoren er hurtig.
StringBuffer StringBuffer er langsom.
StringBuilder StringBuilder er hurtig.

Oversigt – String vs StringBuffer vs StringBuilder i Java

String, StringBuffer og StringBuilder ser ud til at være de samme, men de har forskellige betydninger. Alle disse er Java-klasser. Forskellen mellem String, StringBuffer og StringBuilder i Java er, at String er klasse for at skabe et objekt af typen String, som er et sæt af tegn, StringBuffer er en klasse, der bruges til at ændre Strings og give trådsikkerhed, mens StringBuilder er en klasse, der bruges til at ændre strenge, som ikke giver trådsikkerhed.

Download PDF String vs StringBuffer vs StringBuilder i Java

Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål i henhold til citatnotat. Download venligst PDF-version her Forskel mellem String StringBuffer og StringBuilder i Java

Anbefalede: