Rozdíl mezi String StringBuffer a StringBuilder v Javě

Klíčový rozdíl - řetězec vs StringBuffer vs StringBuilder v Javě
 

String, StringBuffer a String Builder jsou třídy v Javě. Řetězec je široce používán v programování Java. Jakmile je objekt String vytvořen, není možné jej změnit. Pokaždé, když dojde ke změně řetězce, vytvoří se nový řetězec. I když se jedná o zřetězení existujícího řetězce, vytvoří nový řetězec. To způsobuje ztrátu paměti. Třídy StringBuffer a StringBuilder v Javě se používají k úpravě řetězce. klíčový rozdíl mezi String, StringBuffer a StringBuilder v Javě je to String je třída k vytvoření objektu typu String, který je posloupností znaků. StringBuffer je třída, která se používá k úpravě řetězců, které poskytují bezpečnost vlákna, a StringBuilder je třída, která se používá k úpravám řetězců, které neposkytují bezpečnost vláken..

OBSAH

1. Přehled a klíčový rozdíl
2. Co je String v Javě
3. Co je StringBuffer v Javě
4. Co je StringBuilder v Javě
5. Podobnosti mezi řetězcem StringBuffer a StringBuilder v Javě
6. Porovnání vedle sebe - String vs StringBuffer vs StringBuilder v Javě v tabulkové formě
7. Shrnutí

Co je String v Javě?

Třída String je v balíčku java.lang. Pokaždé, když programátor vytvoří řetězec, jedná se o objekt typu String. Řetězce jsou neměnný význam, jakmile je objekt vytvořen, nelze jej změnit. Objekty vytvořené pomocí tříd wrapperů jako Integer, Byte, Float, Double jsou také neměnné. Řetězcový literál je uzavřen v uvozovkách. např. "Ahoj světe". Při každém vytvoření řetězcového literálu zkontroluje Java Virtual Machine (JVM) řetězec konstantních řetězců. Pokud řetězec existuje, je vrácen odkaz na fond konstantních řetězců. Pokud se jedná o nový řetězec, je tento objekt vytvořen ve fondu konstantních řetězců.

Obrázek 01: Program Java pomocí String, StringBuffer a StringBuilder

Viz níže uvedený kód.

String s1 = „Ahoj“;

s1 = s1 + „Svět“;

System.out.println (s1);

V prvním příkazu s1 odkazuje na „Ahoj“ v fondu konstantních řetězců. Ve druhém příkazu JVM nemění existující String. Místo toho vytváří nový řetězec jako „Hello World“ a s1 nyní odkazuje na tento nový řetězec. Ukončovací objekt „Hello“ stále existuje ve fondu konstantních řetězců.

Pokud existuje kód, který je,

String s1 = ”Hello”;

String s2 = s1;

s1, s2 budou odkazovat na objekt String „Hello“.

Co je StringBuffer v Javě?

Třída StringBuffer se používá k tomu, aby byly objekty String zaměněny. Tyto objekty lze proto upravit. StringBuffer definuje čtyři konstruktéry. StringBuffer (), StringBuffer (int size), StringBuffer (String str), StringBuffer (charSequence [] ch)

Viz níže uvedený kód,

StringBuffer s1 = nový StringBuffer („Hello“);

s1.append („Svět“);

System.out.println (s1);

V prohlášení 1 odkazuje s1 na haldu na objekt „Hello“. Objekt je zaměnitelný, protože je vytvořen pomocí StringBuffer. Ve výroku 2 je „Svět“ připojen ke stejnému objektu „Ahoj“ String.

Objekty řetězce vytvořené pomocí třídy StringBuffer mohou ušetřit paměť. StringBuffer poskytuje bezpečnost podprocesů, protože dvě vlákna nemohou přistupovat ke stejné metodě ve třídě StringBuffer současně. Snížení bezpečnosti závitu Výkon StringBuffer. Třída StringBuffer obsahuje metody jako append (), insert (), reverzní (), nahradit ().

Co je StringBuilder v Javě?

Třída StringBuilder se používá k tomu, aby byly objekty String zaměněny. Tyto objekty lze proto upravit. Funkce je podobná StringBuffer, ale to neposkytuje bezpečnost vlákna. StringBuilder má konstruktéry jako StringBuilder (), StringBuilder (int size), StringBuilder (String str).

Viz níže uvedený kód.

StringBuilder s1 = nový StringBuilder („Hello“);

s1.append („Svět“);

System.out.println (s1);

V prohlášení 1 odkazuje s1 na haldu na objekt „Hello“. Objekt je zaměnitelný, protože je vytvořen pomocí StringBuilder. Ve výroku 2 je „Svět“ připojen ke stejnému objektu „Ahoj“ String. Neexistuje žádné vytvoření zcela nového objektu String.

Objekty řetězce vytvořené pomocí třídy StringBuilder mohou ušetřit paměť. Na rozdíl od StringBuffer neposkytuje StringBuilder bezpečnost vláken, protože dvě vlákna mohou přistupovat ke stejné metodě ve třídě StringBuilder současně. Třída StringBuilder obsahuje metody jako append (), insert (), reverzní (), nahradit ().

Jaká je podobnost mezi řetězci, StringBuffer a StringBuilder v Javě?

  • Všechny lze použít k vytvoření řetězců.

Jaký je rozdíl mezi String StringBuffer a StringBuilder v Javě?

String vs StringBuffer vs StringBuilder

Tětiva Řetězec je třída Java, která se používá k vytvoření objektu typu String, což je posloupnost znaků.
StringBuffer StringBuffer je třída Java, která se používá k vytváření objektů String, které lze upravovat pomocí bezpečnosti vlákna.
StringBuilder StringBuilder je třída, která se používá k vytváření řetězcových objektů, které lze upravovat bez zabezpečení podprocesu.
Proměnlivost
Tětiva Řetězec je neměnná třída.
StringBuffer StringBuffer je proměnná třída.
StringBuilder StringBuilder je proměnná třída.
Bezpečnost závitu
Tětiva Metody String jsou bezpečné pro vlákno.
StringBuffer Metody StringBuffer jsou bezpečné pro vlákna a synchronizované.
StringBuilder Metody StringBuilder nejsou bezpečné pomocí závitů a nejsou synchronizovány.
Výkon
Tětiva Řetězec je rychlý.
StringBuffer StringBuffer je pomalý.
StringBuilder StringBuilder je rychlý.

Shrnutí - String vs StringBuffer vs StringBuilder v Javě 

String, StringBuffer a StringBuilder se zdají být stejné, ale mají různé významy. To vše jsou třídy Java. Rozdíl mezi řetězci String, StringBuffer a StringBuilder v jazyce Java spočívá v tom, že String je třída pro vytvoření objektu typu String, což je sada znaků, StringBuffer je třída, která se používá k úpravám řetězců a zajištění bezpečnosti vlákna, zatímco StringBuilder je třída, která se používá k úpravám řetězců, které nezajišťují bezpečnost vlákna.

Stáhněte si PDF String vs StringBuffer vs StringBuilder v Javě

Můžete si stáhnout PDF verzi tohoto článku a použít ji pro účely offline podle citace. Stáhněte si PDF verzi zde Rozdíl mezi String StringBuffer a StringBuilder v Javě

Odkaz:

1. „String vs StringBuffer vs StringBuilder.“ JournalDev, 30. července 2017. K dispozici zde
2. „Hlad Java.“ Rozdíl mezi třídami String, StringBuilder a StringBuffer s příkladem: Java | Java Hungry. K dispozici zde 
3.tutorialspoint.com. "Java Strings." Bod. K dispozici zde