Rozdíl mezi String StringBuffer a StringBuilder v Javě

Obsah:

Rozdíl mezi String StringBuffer a StringBuilder v Javě
Rozdíl mezi String StringBuffer a StringBuilder v Javě

Video: Rozdíl mezi String StringBuffer a StringBuilder v Javě

Video: Rozdíl mezi String StringBuffer a StringBuilder v Javě
Video: Java SE. Урок 27. Классы StringBuilder / StringBuffer и их методы 2024, Listopad
Anonim

Klíčový rozdíl – String 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í k existujícímu řetězci, vytvoří nový řetězec. To způsobuje plýtvání pamětí. Třídy StringBuffer a StringBuilder v Javě se používají k úpravě String. Klíčový rozdíl mezi String, StringBuffer a StringBuilder v Javě je ten, že String je třída pro vytvoření objektu typu String, který je posloupností znaků, StringBuffer je třída, která se používá k úpravě Stringů, která zajišťuje bezpečnost vláken, a StringBuilder je třída. třída, která se používá k úpravě řetězců, které neposkytují bezpečnost vláken.

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 mají neměnný význam, jakmile je objekt vytvořen, nelze jej změnit. Objekty vytvořené pomocí obalových tříd jako Integer, Byte, Float, Double jsou také neměnné. Řetězcový literál je uzavřen ve dvojitých uvozovkách. např. "Ahoj světe". Pokaždé, když je vytvořen řetězcový literál, Java Virtual Machine (JVM) zkontroluje fond konstant String. Pokud řetězec existuje, je vrácen odkaz na fond konstant řetězců. Pokud se jedná o nový řetězec, tento objekt se vytvoří ve fondu konstant řetězců.

Rozdíl mezi String StringBuffer a StringBuilder v Javě
Rozdíl mezi String StringBuffer a StringBuilder v Javě
Rozdíl mezi String StringBuffer a StringBuilder v Javě
Rozdíl mezi String StringBuffer a StringBuilder v Javě

Obrázek 01: Java program využívající String, StringBuffer a StringBuilder

Odkaz na níže uvedený kód.

String s1=“Dobrý den”;

s1=s1 + „Svět“;

System.out.println(s1);

V prvním příkazu s1 odkazuje na „Ahoj“ve fondu konstant řetězců. Ve druhém příkazu JVM nemění stávající řetězec. Místo toho vytvoří nový řetězec jako „Hello World“a s1 nyní tento nový řetězec označuje. Ukončující objekt „Ahoj“stále existuje ve fondu konstant řetězců.

Pokud existuje kód, který je, String s1=”Ahoj”;

Řetězec s2=s1;

s1, s2 oba budou odkazovat na objekt String „Ahoj“.

Co je StringBuffer v Javě?

Třída StringBuffer se používá k tomu, aby objekty String byly proměnlivé. Tyto objekty lze tedy upravovat. StringBuffer definuje čtyři konstruktory. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Odkaz na kód níže, StringBuffer s1=new StringBuffer(“Ahoj”);

s1.append(“Svět”);

System.out.println(s1);

V příkazu 1 odkazuje s1 na objekt „Ahoj“v hromadě. Objekt je měnitelný, protože je vytvořen pomocí StringBuffer. V příkazu 2 je „World“připojeno ke stejnému objektu typu „Hello“String.

Stringové objekty vytvořené pomocí třídy StringBuffer mohou šetřit paměť. StringBuffer poskytuje bezpečnost vláken, protože dvě vlákna nemohou současně přistupovat ke stejné metodě ve třídě StringBuffer. Bezpečnost vláken snižuje výkon StringBuffer. Třída StringBuffer obsahuje metody jako append(), insert(), reverse(), replace().

Co je StringBuilder v Javě?

Třída StringBuilder se používá k tomu, aby objekty String byly proměnlivé. Tyto objekty lze tedy upravovat. Funkce je podobná StringBuffer, ale nezajišťuje bezpečnost vláken. StringBuilder má konstruktory jako StringBuilder(), StringBuilder(int size), StringBuilder(String str).

Odkaz na kód níže.

StringBuilder s1=nový StringBuilder(“Dobrý den”);

s1.append(“Svět”);

System.out.println(s1);

V příkazu 1 odkazuje s1 na objekt „Ahoj“v hromadě. Objekt je proměnlivý, protože je vytvořen pomocí StringBuilder. V příkazu 2 je „World“připojen ke stejnému objektu typu „Hello“String. Nedochází k vytvoření zcela nového objektu String.

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

Jaká je podobnost mezi String, 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

String String je třída Java, která se používá k vytvoření objektu typu String, což je sekvence znaků.
StringBuffer StringBuffer je třída Java, která se používá k vytváření objektů String, které lze upravit s bezpečností vláken.
StringBuilder StringBuilder je třída, která se používá k vytváření objektů typu string, které lze upravovat bez zabezpečení vlákna.
Mutability
String Řetězec je neměnná třída.
StringBuffer StringBuffer je měnitelná třída.
StringBuilder StringBuilder je měnitelná třída.
Bezpečnost nití
String Metody String jsou bezpečné pro vlákna.
StringBuffer Metody StringBufferu jsou bezpečné a synchronizované.
StringBuilder Metody StringBuilderu nejsou bezpečné ve vláknech a nejsou synchronizované.
Výkon
String Ř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. Všechny tyto třídy jsou Java. Rozdíl mezi String, StringBuffer a StringBuilder v Javě je 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ě řetězců a zajištění bezpečnosti vláken, zatímco StringBuilder je třída třída, která se používá k úpravě řetězců, která neposkytuje bezpečnost vláken.

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 offline účely podle citace. Stáhněte si PDF verzi zde Rozdíl mezi String StringBuffer a StringBuilder v Javě

Doporučuje: