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: Конан Непобедимый Обзор [немецкий;многоязычные субтитры]Варварская стратегия реальном времени тесте 2024, Smět
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ž ke Stringu dojde ke změně, vytvoří se nový String. I když se jedná o zřetězení se stávajícím řetězcem, vytvoří nový řetězec. To způsobí 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ě spočívá v tom, ž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ě řetězců, které zajišťují bezpečnost vláken, a StringBuilder je třída, která se používá k úpravě ř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 String StringBuffer a StringBuilder v Javě

6. Porovnání vedle sebe - String vs StringBuffer vs StringBuilder v Java v tabulkové formě

7. Shrnutí

Co je řetězec v Javě?

Třída řetězce je v balíčku java.lang. Pokaždé, když programátor vytvoří String, je to objekt typu String. Řetězce jsou neměnné, což znamená, že jakmile je objekt vytvořen, nelze jej změnit. Objekty vytvořené pomocí obálkových tříd jako Integer, Byte, Float, Double jsou také neměnné. Řetězcový literál je uzavřen do uvozovek. např. „Hello World“. Pokaždé, když je vytvořen řetězcový literál, Java Virtual Machine (JVM) zkontroluje fond konstant řetězce. Pokud String existuje, je vrácen odkaz na fond konstant String. Pokud se jedná o nový řetězec, je tento objekt vytvořen ve fondu konstant řetězce.

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

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

Viz níže uvedený kód.

Řetězec s1 = „Ahoj“;

s1 = s1 + „svět“;

System.out.println (s1);

V prvním příkazu s1 odkazuje na „Hello“ve fondu String Constant. Ve druhém prohlášení JVM nezmění existující řetězec. Místo toho vytvoří nový řetězec jako „Hello World“a s1 nyní odkazuje na tento nový řetězec. Ukončovací objekt „Hello“stále existuje ve fondu konstant String.

Pokud existuje kód, který je, Řetězec s1 = „Dobrý den“;

Řetězec s2 = s1;

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

Co je StringBuffer v Javě?

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

Viz níže uvedený kód, StringBuffer s1 = nový StringBuffer („Hello“);

s1.append („Svět“);

System.out.println (s1);

V příkazu 1 odkazuje s1 na objekt „Hello“v hromadě. Objekt je měnitelný, protože je vytvořen pomocí StringBuffer. V prohlášení 2 je „World“připojen ke stejnému řetězcovému objektu „Hello“.

Řetězcové objekty vytvořené třídou StringBuffer mohou ušetřit paměť. StringBuffer poskytuje bezpečnost podprocesů, protože dvě vlákna nemohou současně přistupovat ke stejné metodě ve třídě StringBuffer. Bezpečnost závitu 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 byly objekty String proměnlivé. Tyto objekty lze proto upravit. Funkčnost je podobná jako u StringBuffer, ale to neposkytuje bezpečnost podprocesů. StringBuilder má konstruktory, jako je StringBuilder (), StringBuilder (velikost int), StringBuilder (String str).

Viz níže uvedený kód.

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

s1.append („Svět“);

System.out.println (s1);

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

Řetězcové objekty vytvořené třídou StringBuilder mohou ušetřit paměť. Na rozdíl od StringBuffer StringBuilder neposkytuje 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 (), reverse (), replace ().

Jaká je podobnost mezi String, StringBuffer a StringBuilder v Javě?

Vše lze použít k vytvoření řetězců

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

Rozdílný článek uprostřed před tabulkou

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 upravit pomocí bezpečnosti vláken.
StringBuilder StringBuilder je třída, která se používá k vytváření řetězcových objektů, které lze upravovat bez bezpečnosti vláken.
Proměnlivost
Tětiva Řetězec je neměnná třída.
StringBuffer StringBuffer je proměnlivá třída.
StringBuilder StringBuilder je proměnlivá třída.
Bezpečnost závitu
Tětiva Metody řetězce jsou bezpečné pro vlákna.
StringBuffer Metody StringBuffer jsou bezpečné pro vlákna a synchronizované.
StringBuilder Metody StringBuilder nejsou bezpečné z hlediska vláken 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 String, StringBuffer a StringBuilder v Javě 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ě řetězců a zajištění bezpečnosti vláken, zatímco StringBuilder je třída, která se používá k úpravě řetězců, která neposkytuje bezpečnost vláken.

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

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

Doporučená: