*   >> Læs Uddannelse artikler >> tech >> web development

Fordel og ulemper ved String Gennemførelse i Java

Fordele ved String gennemførelse JAVA1. Compilation skaber unikke strenge. Påkompileringstidspunktet, er strenge løses så vidt muligt. Dette omfatter anvendelse af sammenkædningsoperatoren og konvertere andre litteraler til strenge. Så hi7 og (hi + 7) både få løst påkompileringstidspunktet til den samme streng, og er identiske objekter i klassen strengen pool. Compilere er forskellige i deres evne til at opnå denne beslutning. Du kan altid tjekke din compiler (fx ved dekompilering nogle udtalelser, der involverer sammenkædning) og ændre det, hvis needed.2.

Fordi String objekter er uforanderlige, en delstreng operation gør ikke brug for at kopiere hele underliggende sekvens af tegn. I stedet kan en delstreng bruge samme char array som den oprindelige streng, og blot henvise til et andet startpunkt og slutpunkt i char array. Det betyder, at understrengsgrænser operationer er effektive, at være både hurtig og bevare hukommelse; den ekstra objekt er blot en wrapper på samme underliggende char array med forskellige pejlemærker i denne array.3.

Strenge gennemføres i JDK som en intern char array med indeks forskydninger (faktisk en start offset og en karakter tæller). Denne grundlæggende struktur er ekstremt usandsynligt, at blive ændret i en hvilken som helst version af Java.4. Strenge har stærk støtte til internationalisering. Det ville tage en stor indsats for at gengive internationalisering støtte til en alternativ class.5. Det tætte forhold til StringBuffers tillader Strings til henvisning til den samme char array bruges af StringBuffer. Dette er et tveægget sværd.

For typiske praksis, når du bruger en StringBuffer at manipulere og tilføje tegn og datatyper, og derefter konvertere det endelige resultat til en String, det fungerer fint. Den StringBuffer giver effektive mekanismer til dyrkning, indsætter tilføje, ændre og andre typer af String manipulation. Den resulterende String derefter effektivt referencer samme char array med uden ekstra karakter kopiering. Dette er meget hurtig og reducerer antallet af genstande, der anvendes til et minimum ved at undgå mellemliggende objekter.

Men hvis StringBuffer objektet efterfølgende ændres, er char array i denne StringBuffer kopieret ind i en ny char array, der nu refereres af StringBuffer. String objekt bevarer henvisningen til den tidligere delte char array. Det betyder, at kopiering hovedet kan forekomme på uventede steder i ansøgningen. I stedet for kopieringen sker på toString () metode opkald, som man kunne

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.