Ez egy „karakterlánc-összefűzés”, és ez egy rossz gyakorlat: … Egyesek azt mondhatják, hogy lassú, főleg azért, mert a kapott karakterlánc egyes részeit többször átmásolják Valóban, minden + operátornál a String osztály lefoglal egy új blokkot a memóriában, és belemásol mindent, ami benne van; plusz egy utótag összefűzve.
Nem hatékony a karakterlánc-összefűzés?
Az összefűzés nem olyan hatástalan, mert a modern fordítók egy hatékony, StringBuilder alapú implementációra cserélik (ha megnézed az osztályfájl bájtkódját, látni fogod).
Miért drága a karakterlánc-összefűzés?
Költséges volt. Először is ássuk ki azt a kérdést, hogy miért költséges. A Java-ban a karakterlánc objektumok megváltoztathatatlanok, ami azt jelenti, hogy miután létrehozták, nem módosíthatja. Tehát amikor az egyik karakterláncot összefűzzük a másikkal, egy új karakterlánc jön létre, és a régebbi karakterlánc lesz megjelölve a szemétgyűjtő számára.
Milyen veszélyekkel jár a karakterlánc-összefűzés használata SQL-lekérdezésben?
1 Válasz
- Teljesítmény: Egy előkészített utasítás használatakor a lekérdezés szintaxisát csak egyszer kell elemezni, és a hozzáférési útvonalat csak egyszer kell kiszámítani minden egyes lekérdezéstípushoz. …
- Biztonság: A karakterlánc-összefűzés a felhasználó által megadott adatokkal mindig hajlamos SQL-injekciós támadásokra.
Lassú a karakterlánc-összefűzés a Pythonban?
Ez a viselkedés nem lep meg: a Python karakterlánc-objektumai megváltoztathatatlanok, így minden összefűzés egy új karakterláncot generál ahelyett, hogy a meglévőt módosítaná. Az sem meglepő, hogy a többszörös karakterlánc-összefűzések lassúnak számítanak.