Hovedforskjell - String vs StringBuffer vs StringBuilder i Java
String, StringBuffer og String Builder er klasser i Java. Streng er mye brukt i Java-programmering. Når et objekt av String er opprettet, er det ikke mulig å endre dem. Hver gang en endring skjer i strengen, oppretter den en ny streng. Selv om det er en sammenkobling til en eksisterende streng, oppretter den en ny streng. Dette forårsaker minnesvinn. StringBuffer- og StringBuilder-klasser i Java brukes til å endre String. Hovedforskjellen mellom String, StringBuffer og StringBuilder i Java er at String er en klasse for å lage et objekt av typen String som er en sekvens av tegn, StringBuffer er en klasse som brukes til å endre strenger som gir trådsikkerhet, og StringBuilder er en klasse som brukes til å endre strenger som ikke gir trådsikkerhet.
INNHOLD
1. Oversikt og nøkkelforskjell
2. Hva er streng i Java
3. Hva er StringBuffer i Java
4. Hva er StringBuilder i Java
5. Likheter mellom String StringBuffer og StringBuilder i Java
6. Sammenligning side om side - String vs StringBuffer vs StringBuilder i Java i tabellform
7. Oppsummering
Hva er streng i Java?
Strengklasse er i java.lang-pakke. Hver gang programmereren oppretter en streng, er den et objekt av typen streng. Strenger er uforanderlig mening når objektet er opprettet, kan det ikke endres. Objekter opprettet ved hjelp av wrapper-klasser som Integer, Byte, Float, Double er også uforanderlige. En streng bokstavelig er omsluttet av doble anførselstegn. f.eks. "Hello World". Hver gang en streng-bokstavelig opprettet, sjekker Java Virtual Machine (JVM) strengkonstruksjonen for streng. Hvis strengen eksisterer, returneres en referanse til strengstrengkonstanten. Hvis det er en ny streng, opprettes det objektet i streng-bassenget for streng.
Figur 01: Java-program ved bruk av String, StringBuffer og StringBuilder
Se koden nedenfor.
String s1 = “Hei”;
s1 = s1 + “Verden”;
System.out.println (s1);
I den første uttalelsen refererer s1 til “Hei” i String-konstantbassenget. I den andre uttalelsen endrer ikke JVM den eksisterende strengen. I stedet oppretter den en ny streng som “Hello World” og s1 viser nå til den nye strengen. Det spennende "Hello" -objektet eksisterer fortsatt i String-konstantbassenget.
Hvis det er en kode som er, Streng s1 =”Hei”;
Streng s2 = s1;
s1, s2 vil begge referere til strengobjektet "Hei".
Hva er StringBuffer i Java?
StringBuffer-klassen brukes til å gjøre String-objekter mutable. Derfor kan disse objektene endres. StringBuffer definerer fire konstruktører. StringBuffer (), StringBuffer (int størrelse), StringBuffer (String str), StringBuffer (charSequence ch)
Se koden nedenfor, StringBuffer s1 = ny StringBuffer (“Hei”);
s1.append (“Verden”);
System.out.println (s1);
I uttalelse 1 refererer s1 til "Hello" -objektet i en haug. Objektet er mutert fordi det er opprettet ved hjelp av StringBuffer. I uttalelse 2 er "Verden" lagt til det samme "Hei" strengobjektet.
Strengobjekter opprettet med StringBuffer-klasse kan spare minne. StringBuffer gir trådsikkerhet fordi to tråder ikke får tilgang til samme metode i StringBuffer-klassen samtidig. Trådsikkerhet reduserer ytelsen til StringBuffer. StringBuffer-klassen inneholder metoder som append (), insert (), reverse (), erstatt ().
Hva er StringBuilder i Java?
StringBuilder-klassen brukes til å gjøre String-objekter mutable. Derfor kan disse objektene endres. Funksjonaliteten er lik StringBuffer, men dette gir ikke trådsikkerhet. StringBuilder har konstruktører som StringBuilder (), StringBuilder (int størrelse), StringBuilder (String str).
Se koden nedenfor.
StringBuilder s1 = ny StringBuilder (“Hei”);
s1.append (“Verden”);
System.out.println (s1);
I uttalelse 1 refererer s1 til "Hello" -objektet i en haug. Objektet er mutert fordi det er opprettet ved hjelp av StringBuilder. I uttalelse 2 er "Verden" lagt til det samme "Hei" strengobjektet. Det er ingen oppretting av helt nytt strengobjekt.
Strengobjekter opprettet med StringBuilder-klasse kan spare minne. I motsetning til i StringBuffer, gir StringBuilder ikke trådsikkerhet fordi to tråder har tilgang til samme metode i StringBuilder-klassen samtidig. StringBuilder-klassen inneholder metoder som append (), insert (), reverse (), erstatt ().
Hva er likheten mellom String, StringBuffer og StringBuilder i Java?
Alt kan brukes til å lage strenger
Hva er forskjellen mellom String StringBuffer og StringBuilder i Java?
Diff Article Midt før tabell
String vs StringBuffer vs StringBuilder |
|
String | Strengen er en Java-klasse som brukes til å lage et objekt av typen String, som er en sekvens av tegn. |
StringBuffer | StringBuffer er en Java-klasse som brukes til å lage strengobjekter, som kan modifiseres med trådsikkerhet. |
StringBuilder | StringBuilder er en klasse som brukes til å lage strengobjekter, som kan modifiseres uten trådsikkerhet. |
Mutabilitet | |
String | Strengen er en uforanderlig klasse. |
StringBuffer | StringBuffer er en foranderlig klasse. |
StringBuilder | StringBuilder er en foranderlig klasse. |
Trådsikkerhet | |
String | Metoder for streng er trådsikre. |
StringBuffer | Metoder for StringBuffer er trådsikre og synkroniserte. |
StringBuilder | Metoder for StringBuilder er ikke gjenget sikkert og ikke synkronisert. |
Opptreden | |
String | Strengen er rask. |
StringBuffer | StringBuffer er treg. |
StringBuilder | StringBuilder er rask. |
Sammendrag - String vs StringBuffer vs StringBuilder i Java
String, StringBuffer og StringBuilder ser ut til å være de samme, men de har forskjellige betydninger. Alt dette er Java-klasser. Forskjellen mellom String, StringBuffer og StringBuilder i Java er at String er klasse for å lage et objekt av typen String, som er et sett med tegn, StringBuffer er en klasse som brukes til å endre strenger og gi trådsikkerhet, mens StringBuilder er en klasse som brukes til å endre strenger som ikke gir trådsikkerhet.
Last ned PDF String vs StringBuffer vs StringBuilder i Java
Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til frakoblede formål som angitt i en henvisning. Last ned PDF-versjon her Forskjellen mellom String StringBuffer og StringBuilder i Java