Põhierinevus - String vs StringBuffer vs StringBuilder Java-s
String, StringBuffer ja String Builder on Java klassid. Stringi kasutatakse laialdaselt Java programmeerimisel. Kui Stringi objekt on loodud, pole neid võimalik muuta. Iga kord, kui stringi muudetakse, loob see uue stringi. Isegi kui see on olemasoleva stringi liitmine, loob see uue stringi. See põhjustab mälu raiskamist. Stringi muutmiseks kasutatakse Java-s asuvaid stringe StringBuffer ja StringBuilder. Põhiline erinevus Stringi, StringBufferi ja StringBuilderi vahel Java-s on see, et String on klass String tüüpi objekti loomiseks, mis on tähemärkide jada, StringBuffer on klass, mida kasutatakse stringide muutmiseks, mis tagab lõime ohutuse, ja StringBuilder on klass, mida kasutatakse stringide muutmiseks, mis ei taga niidi ohutust.
SISU
1. Ülevaade ja võtmevahe
2. Mis on string Java-s
3. Mis on StringBuffer Java-s
4. Mis on StringBuilder Java-s
5. StringBufferi ja Java-i StringBuilderi sarnasused
6. Kõrvuti võrdlus - String vs StringBuffer vs StringBuilder aastal Java tabelina
7. Kokkuvõte
Mis on string Java keeles?
Stringklass on paketis java.lang. Iga kord, kui programmeerija loob stringi, on see tüüp String. Stringid on objekti loomisel muutumatu tähendus, seda ei saa muuta. Samuti on muutmatud sellised objektid, mis on loodud ümbrisklasside abil, nagu täisarv, bait, ujuk, topelt. Stringi literaal on ümbritsetud jutumärkidega. nt “Tere maailm”. Iga kord, kui stressi literaal luuakse, kontrollib Java virtuaalne masin (JVM) stringi konstantse kogumit. Kui string on olemas, tagastatakse viide stringi konstantsele kogumile. Kui see on uus string, luuakse see objekt stringi konstantses kogumis.
Joonis 01: Java-programm Stringi, StringBufferi ja StringBuilderi abil
Vaadake allolevat koodijuppi.
String s1 = “Tere”;
s1 = s1 + “maailm”;
System.out.println (s1);
Esimeses lauses viitab s1 stringi konstantse kogumi „Hello” -le. Teises avalduses ei muuda JVM olemasolevat stringi. Selle asemel loob see uue stringi nimega "Hello World" ja s1 viitab nüüd sellele uuele stringile. Väljuv „Hello“objekt on stringi konstantse kogumis endiselt olemas.
Kui on kood, mis on, String s1 =”Tere”;
String s2 = s1;
s1, s2 viitavad mõlemad String-objektile “Tere”.
Mis on StringBuffer Java-s?
StringBufferi klassi kasutatakse String-objektide muutlikuks muutmiseks. Seetõttu saab neid objekte muuta. StringBuffer määratleb neli konstruktorit. StringBuffer (), StringBuffer (int-suurus), StringBuffer (String str), StringBuffer (charSequence ch)
Vaadake allolevat koodi, StringBuffer s1 = uus StringBuffer (“Tere”);
s1.append (“Maailm”);
System.out.println (s1);
Lauses 1 viitab s1 kuhja objektile “Tere”. Objekt on muudetav, kuna see on loodud StringBufferi abil. Lauses 2 on “World” lisatud samale stringi objektile “Hello”.
StringBufferi klassiga loodud stringiobjektid võivad mälu salvestada. StringBuffer tagab lõime turvalisuse, kuna kaks lõime ei pääse StringBufferi klassis ühele ja samale meetodile juurde. Keerme ohutus vähendab StringBufferi jõudlust. Klass StringBuffer sisaldab selliseid meetodeid nagu append (), insert (), reverse (), aizstama ().
Mis on Java StringBuilder?
StringBuilderi klassi kasutatakse stringide objektide muutlikuks muutmiseks. Seetõttu saab neid objekte muuta. Funktsionaalsus on sarnane StringBufferiga, kuid see ei taga lõime ohutust. StringBuilderil on sellised konstruktorid nagu StringBuilder (), StringBuilder (int size), StringBuilder (String str).
Vaadake allolevat koodi.
StringBuilder s1 = uus StringBuilder (“Tere”);
s1.append (“Maailm”);
System.out.println (s1);
Lauses 1 viitab s1 kuhja objektile “Tere”. Objekt on muudetav, kuna see on loodud StringBuilderi abil. Lauses 2 on “World” lisatud samale stringi objektile “Hello”. Täiesti uut Stringi objekti pole loodud.
StringBuilder-klassiga loodud stringiobjektid võivad mälu salvestada. Erinevalt StringBufferist ei paku StringBuilder niiditurvalisust, kuna kaks lõime pääsevad StringBuilderi klassis samale meetodile korraga juurde. Klass StringBuilder sisaldab selliseid meetodeid nagu append (), insert (), reverse (), aizstama ().
Milline on Java stringide, StringBufferi ja StringBuilderi sarnasus?
Kõiki saab kasutada stringide loomiseks
Mis vahe on Java StringBufferi ja StringBuilderi vahel?
Erinev artikkel keskel enne tabelit
String vs StringBuffer vs StringBuilder |
|
String | String on Java-klass, mida kasutatakse Stringi tüüpi objekti loomiseks, mis on tähemärkide jada. |
StringBuffer | StringBuffer on Java-klass, mida kasutatakse String-objektide loomiseks, mida saab niidiohutusega muuta. |
StringBuilder | StringBuilder on klass, mida kasutatakse stringi objektide loomiseks, mida saab muuta ilma lõime ohutuseta. |
Muutlikkus | |
String | Nöör on muutumatu klass. |
StringBuffer | StringBuffer on muudetav klass. |
StringBuilder | StringBuilder on muudetav klass. |
Keerme ohutus | |
String | Stringi meetodid on niidikindlad. |
StringBuffer | StringBufferi meetodid on niidikindlad ja sünkroniseeritud. |
StringBuilder | StringBuilderi meetodid pole keermestatud ja pole sünkroonitud. |
Performance | |
String | Nöör on kiire. |
StringBuffer | StringBuffer on aeglane. |
StringBuilder | StringBuilder on kiire. |
Kokkuvõte - String vs StringBuffer vs StringBuilder Java-s
String, StringBuffer ja StringBuilder näivad olevat samad, kuid neil on erinev tähendus. Kõik need on Java-klassid. Stringi, StringBufferi ja StringBuilderi erinevus Java-s on see, et String on klass, et luua Stringi tüüpi objekt, mis on tähemärkide komplekt, StringBuffer on klass, mida kasutatakse stringide muutmiseks ja niidi turvalisuse tagamiseks, StringBuilder on aga klass, mida kasutatakse stringide muutmiseks, mis ei taga niidi ohutust.
Laadige alla Java Struktuur vs StringBuffer vs StringBuilder
Selle artikli PDF-versiooni saate alla laadida ja kasutada võrguühenduseta eesmärkidel, nagu tsiteeritud. Laadige siit alla PDF-versioon. String StringBufferi ja Java StringBuilderi erinevus