String, StringBuffer og String Builder er klasser i Java. String er mye brukt i Java programmering. Når et objekt av streng 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 sammenheng til en eksisterende streng, skaper det en ny streng. Dette forårsaker minneavfall. StringBuffer og StringBuilder klasser i Java brukes til å endre streng. De nøkkelforskjell mellom String, StringBuffer og StringBuilder i Java er det String er en klasse for å lage et objekt av typen String som er en sekvens av tegn, StringBuffer er en klasse som brukes til å modifisere Strings som gir trådsikkerhet, og StringBuilder er en klasse som brukes til å modifisere Strings som ikke gir trådsikkerhet.
1. Oversikt og nøkkelforskjell
2. Hva er String i Java
3. Hva er StringBuffer i Java
4. Hva er StringBuilder i Java
5. Likheter mellom String StringBuffer og StringBuilder i Java
6. Side ved side sammenligning - String vs StringBuffer vs StringBuilder i Java i tabellform
7. Sammendrag
String klasse er i java.lang pakke. Hver gang programmereren lager en streng, er det et objekt av typen String. Strings er uforanderlige, noe som betyr at 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 vedlagt i to sitater. f.eks "Hei Verden". Hver gang en streng bokstavelig opprettet, kontrollerer Java Virtual Machine (JVM) Strings konstant bassenget. Hvis strengen eksisterer, returneres en referanse til String konstant bassenget. Hvis det er en ny streng, blir objektet opprettet i Strings konstant basseng.
Figur 01: Java-program ved hjelp av String, StringBuffer og StringBuilder
Se under stykke kode.
String s1 = "Hei";
s1 = s1 + "verden";
System.out.println (s1);
I den første setningen refererer s1 til "Hei" i Strings konstante bassenget. I den andre setningen endrer JVM ikke den eksisterende strengen. I stedet lager den en ny streng som "Hello World", og s1 refererer nå til den nye String. Det spennende "Hello" -objektet finnes fortsatt i String-konstantbassenget.
Hvis det er en kode som er,
String s1 = "Hei";
String s2 = s1;
s1, s2 begge vil referere til streng-objektet "Hello".
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 ("Hello");
s1.append ( “World”);
System.out.println (s1);
I setning 1 refererer s1 til "Hei" -objektet i en haug. Objektet er mutable fordi det er opprettet ved hjelp av StringBuffer. I uttalelse 2 er "World" lagt til det samme "Hello" String-objektet.
Stringobjekter laget med StringBuffer-klassen kan lagre minne. StringBuffer gir trådsikkerhet fordi to tråder ikke kan få tilgang til samme metode i StringBuffer-klassen samtidig. Trådsikkerhet reduserer StringBuffer ytelse. StringBuffer-klassen inneholder metoder som append (), insert (), reverse (), erstatte ().
StringBuilder-klassen brukes til å gjøre String-objekter omgjengelige. Derfor kan disse objektene endres. Funksjonaliteten ligner på StringBuffer, men dette gir ikke trådsikkerhet. StringBuilder har konstruktører som StringBuilder (), StringBuilder (int størrelse), StringBuilder (String str).
Se under koden nedenfor.
StringBuilder s1 = ny StringBuilder ("Hello");
s1.append ( “World”);
System.out.println (s1);
I setning 1 refererer s1 til "Hei" -objektet i en haug. Objektet er mutable fordi det er opprettet ved hjelp av StringBuilder. I uttalelse 2 er "World" lagt til det samme "Hello" String-objektet. Det er ingen opprettelse av helt nytt String-objekt.
Stringobjekter som er opprettet med StringBuilder-klassen, kan lagre minne. I motsetning til StringBuffer gir StringBuilder ikke trådsikkerhet fordi to tråder kan få tilgang til samme metode i StringBuilder-klassen samtidig. StringBuilder-klassen inneholder metoder som append (), insert (), reverse (), erstatte ().
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 endres med trådsikkerhet. |
Stringbuilder | StringBuilder er en klasse som brukes til å lage strengobjekter, som kan endres uten trådsikkerhet. |
mutability | |
string | Strengen er en uforanderlig klasse. |
Stringbuffer | StringBuffer er en omgjengelig klasse. |
Stringbuilder | StringBuilder er en omgjengelig klasse. |
Trådsikkerhet | |
string | Metoder for streng er trådsikker. |
Stringbuffer | Metoder for StringBuffer er trådsikker og synkronisert. |
Stringbuilder | Metoder for StringBuilder er ikke gjenget sikkert og ikke synkronisert. |
Opptreden | |
string | Strengen er rask. |
Stringbuffer | StringBuffer er treg. |
Stringbuilder | StringBuilder er rask. |
String, StringBuffer og StringBuilder synes å være de samme, men de har forskjellige betydninger. Alle disse 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 å modifisere Strings og gir trådsikkerhet, mens StringBuilder er en klassen som brukes til å endre strengene som ikke gir trådsikkerhet.
Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til off-line formål som per sitatnotat. Vennligst last ned PDF-versjon her Forskjellen mellom String StringBuffer og StringBuilder i Java
1. "String vs StringBuffer vs StringBuilder." JournalDev, 30. juli 2017. Tilgjengelig her
2. "Java Hungry." Forskjellen mellom String, StringBuilder og StringBuffer-klasser med eksempel: Java | Java sulten. Tilgjengelig her
3.tutorialspoint.com. "Java Strings." Poenget. Tilgjengelig her