Razlika između String StringBuffer i StringBuilder u Javi

Sadržaj:

Razlika između String StringBuffer i StringBuilder u Javi
Razlika između String StringBuffer i StringBuilder u Javi

Video: Razlika između String StringBuffer i StringBuilder u Javi

Video: Razlika između String StringBuffer i StringBuilder u Javi
Video: Какую cms выбрать, обзор движков Wordpress, Opencart, Drupal, 1c битрикс или Magento 2024, Prosinac
Anonim

Ključna razlika – String vs StringBuffer vs StringBuilder u Javi

String, StringBuffer i String Builder su klase u Javi. String se široko koristi u Java programiranju. Jednom kada je objekt String kreiran, nije ga moguće promijeniti. Svaki put kad dođe do promjene niza, stvara se novi niz. Čak i ako se radi o ulančavanju postojećeg niza, stvara se novi niz. To uzrokuje gubitak memorije. StringBuffer i StringBuilder klase u Javi koriste se za modificiranje Stringa. Ključna razlika između String, StringBuffer i StringBuilder u Javi je ta što je String klasa za stvaranje objekta tipa String koji je niz znakova, StringBuffer je klasa koja se koristi za modificiranje nizova koja pruža sigurnost niti, a StringBuilder je klasa koja se koristi za modificiranje nizova koji ne pružaju sigurnost niti.

Što je String u Javi?

String klasa je u java.lang paketu. Svaki put kad programer kreira String, to je objekt tipa String. Stringovi su nepromjenjivi, što znači da se jednom kada je objekt kreiran ne može mijenjati. Objekti stvoreni korištenjem klasa omotača kao što su Integer, Byte, Float, Double također su nepromjenjivi. String literal nalazi se u dvostrukim navodnicima. npr. "Pozdrav svijete". Svaki put kad se stvori string literal, Java Virtual Machine (JVM) provjerava skup String konstanti. Ako String postoji, vraća se referenca na skup konstanti String. Ako se radi o novom nizu, taj se objekt stvara u skupu konstanti niza.

Razlika između String StringBuffer i StringBuilder u Javi
Razlika između String StringBuffer i StringBuilder u Javi
Razlika između String StringBuffer i StringBuilder u Javi
Razlika između String StringBuffer i StringBuilder u Javi

Slika 01: Java program koji koristi String, StringBuffer i StringBuilder

Pogledajte donji dio koda.

Niz s1=“Zdravo”;

s1=s1 + “Svijet”;

System.out.println(s1);

U prvoj izjavi, s1 se odnosi na “Hello” u skupu konstanti niza. U drugoj izjavi JVM ne mijenja postojeći niz. Umjesto toga, stvara novi niz kao "Hello World" i s1 se sada poziva na taj novi niz. Izlazni objekt “Hello” još uvijek postoji u String konstantnom skupu.

Ako postoji kod koji je, String s1=”Zdravo”;

Niz s2=s1;

s1, s2 oba će se odnositi na String objekt “Hello”.

Što je StringBuffer u Javi?

StringBuffer klasa se koristi da String objekte učini promjenjivima. Stoga se ti objekti mogu mijenjati. StringBuffer definira četiri konstruktora. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Pogledajte donji kod, StringBuffer s1=novi StringBuffer(“Hello”);

s1.append(“Svijet”);

System.out.println(s1);

U iskazu 1, s1 se odnosi na “Hello” objekt u gomili. Objekt je promjenjiv jer je stvoren pomoću StringBuffera. U iskazu 2, “Svijet” je pridodan istom “Hello” String objektu.

String objekti kreirani s StringBuffer klasom mogu uštedjeti memoriju. StringBuffer pruža sigurnost niti jer dvije niti ne mogu istovremeno pristupiti istoj metodi u klasi StringBuffer. Sigurnost niti smanjuje performanse StringBuffera. Klasa StringBuffer sadrži metode kao što su append(), insert(), reverse(), replace().

Što je StringBuilder u Javi?

StringBuilder klasa se koristi za stvaranje String objekata promjenjivim. Stoga se ti objekti mogu mijenjati. Funkcionalnost je slična StringBufferu, ali ne osigurava sigurnost niti. StringBuilder ima konstruktore kao što su StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Pogledajte donji kod.

StringBuilder s1=novi StringBuilder(“Hello”);

s1.append(“Svijet”);

System.out.println(s1);

U iskazu 1, s1 se odnosi na “Hello” objekt u gomili. Objekt je promjenjiv jer je stvoren pomoću StringBuilder-a. U iskazu 2, “Svijet” je pridodan istom “Hello” String objektu. Nema stvaranja potpuno novog String objekta.

String objekti stvoreni s StringBuilder klasom mogu uštedjeti memoriju. Za razliku od StringBuffera, StringBuilder ne pruža sigurnost niti jer dvije niti mogu istovremeno pristupiti istoj metodi u klasi StringBuilder. Klasa StringBuilder sadrži metode kao što su append(), insert(), reverse(), replace().

Koja je sličnost između Stringa, StringBuffera i StringBuildera u Javi?

Sve se može koristiti za stvaranje nizova

Koja je razlika između String StringBuffer i StringBuilder u Javi?

String vs StringBuffer vs StringBuilder

Niz Niz je Java klasa koja se koristi za stvaranje objekta tipa String, koji je niz znakova.
StringBuffer StringBuffer je Java klasa koja se koristi za stvaranje String objekata, koji se mogu mijenjati uz sigurnost niti.
StringBuilder StringBuilder je klasa koja se koristi za stvaranje string objekata, koji se mogu mijenjati bez sigurnosti niti.
Promjenjivost
Niz Niz je nepromjenjiva klasa.
StringBuffer StringBuffer je promjenjiva klasa.
StringBuilder StringBuilder je promjenjiva klasa.
Sigurnost niti
Niz Metode niza su sigurne niti.
StringBuffer Metode StringBuffer-a sigurne su niti i sinkronizirane.
StringBuilder Metode StringBuildera nisu sigurne niti niti sinkronizirane.
Performanse
Niz Žica je brza.
StringBuffer StringBuffer je spor.
StringBuilder StringBuilder je brz.

Sažetak – String vs StringBuffer vs StringBuilder u Javi

String, StringBuffer i StringBuilder izgledaju isto, ali imaju različita značenja. Sve ovo su Java klase. Razlika između String, StringBuffer i StringBuilder u Javi je u tome što je String klasa za stvaranje objekta tipa String, koji je skup znakova, StringBuffer je klasa koja se koristi za modificiranje nizova i pružanje sigurnosti niti, dok je StringBuilder klasa koja se koristi za modificiranje nizova koji ne osiguravaju sigurnost niti.

Preuzmite PDF String vs StringBuffer vs StringBuilder u Javi

Možete preuzeti PDF verziju ovog članka i koristiti ga za izvanmrežne svrhe prema napomeni o citatu. Ovdje preuzmite PDF verziju Razlika između String StringBuffer i StringBuilder u Javi

Preporučeni: