Logo cs.boatexistence.com

Proč je zřetězení řetězců špatné?

Obsah:

Proč je zřetězení řetězců špatné?
Proč je zřetězení řetězců špatné?

Video: Proč je zřetězení řetězců špatné?

Video: Proč je zřetězení řetězců špatné?
Video: DO NOT Concatenate Strings Like This In Python, There's A Better Way. 2024, Smět
Anonim

Toto je „zřetězení řetězců“a je to špatný postup: … Někdo může říci, že je to pomalé, většinou proto, že části výsledného řetězce jsou zkopírovány vícekrát Opravdu, na každém operátoru + třída String alokuje nový blok v paměti a zkopíruje do něj vše, co má; plus zřetězená přípona.

Je zřetězení řetězců neefektivní?

Zřetězení není tak neefektivní, protože moderní kompilátory jej nahrazují účinnou implementací založenou na StringBuilderu (uvidíte to, když se podíváte na bytecode souboru classfile).

Proč je zřetězení řetězců drahé?

Bylo to drahé. Pojďme se nejprve ponořit do problému, proč je to drahé. V Javě jsou řetězcové objekty neměnné, což znamená, že jakmile jsou vytvořeny, nemůžete je změnit. Když tedy zřetězíme jeden řetězec s druhým, vytvoří se nový řetězec a ten starší je označen pro sběrač odpadu.

Jaká jsou nebezpečí použití zřetězení řetězců v dotazu SQL?

1 odpověď

  1. Výkon: Při použití připraveného příkazu musí být syntaxe dotazu analyzována pouze jednou a přístupová cesta musí být vypočtena pouze jednou pro každý odlišný typ dotazu. …
  2. Zabezpečení: Použití zřetězení řetězců s daty poskytnutými uživatelem je vždy náchylné k útokům typu SQL-injection.

Je zřetězení řetězců v Pythonu pomalé?

Toto chování by vás nemělo překvapit: Řetězcové objekty Pythonu jsou neměnné, takže každé zřetězení generuje nový řetězec namísto úpravy stávajícího na místě. Není také žádným překvapením, že zřetězení více řetězců je považováno za pomalé.

Doporučuje: