Logo ro.boatexistence.com

De ce concatenarea șirurilor este proastă?

Cuprins:

De ce concatenarea șirurilor este proastă?
De ce concatenarea șirurilor este proastă?

Video: De ce concatenarea șirurilor este proastă?

Video: De ce concatenarea șirurilor este proastă?
Video: DO NOT Concatenate Strings Like This In Python, There's A Better Way. 2024, Mai
Anonim

Aceasta este „concatenarea șirurilor” și este o practică proastă: … Unii ar putea spune că este lentă, mai ales pentru că părți ale șirului rezultat sunt copiate de mai multe ori Într-adevăr, la fiecare operator +, clasa String alocă un nou bloc în memorie și copiază tot ce are în el; plus un sufix fiind concatenat.

Este concatenarea șirurilor ineficientă?

Concatenarea nu este atât de ineficientă, deoarece compilatoarele moderne o înlocuiesc cu o implementare eficientă bazată pe StringBuilder (o veți vedea dacă vă uitați la codul de octeți al fișierului de clasă).

De ce este costisitoare concatenarea șirurilor?

A fost costisitor. Să analizăm mai întâi problema de ce este costisitor. În Java, obiectele șir sunt imuabile, ceea ce înseamnă că odată ce este creat, nu le puteți modifica. Deci, când concatenăm un șir cu altul, se creează un șir nou, iar cel mai vechi este marcat pentru colectorul de gunoi.

Care sunt pericolele utilizării concatenării șirurilor într-o interogare SQL?

1 răspuns

  1. Performanță: Când utilizați o instrucțiune pregătită, sintaxa interogării trebuie analizată o singură dată, iar calea de acces trebuie calculată o singură dată pentru fiecare tip de interogare distinct. …
  2. Securitate: utilizarea concatenării șirurilor cu datele furnizate de utilizator este întotdeauna predispusă la atacuri cu injecție SQL.

Concatenarea șirurilor este lentă în Python?

Acest comportament nu ar trebui să vă surprindă: obiectele șir din Python sunt imuabile, astfel încât fiecare concatenare generează un șir nou în loc să îl modifice pe cel existent. De asemenea, nu este surprinzător faptul că concatenări multiple de șiruri sunt considerate lente.

Recomandat: