Detta är "strängsammansättning", och det är en dålig praxis: … Vissa kanske säger att det är långsamt, mest för att delar av den resulterande strängen kopieras flera gånger Indeed, på varje +-operator allokerar String-klassen ett nytt block i minnet och kopierar allt den har in i det; plus att ett suffix sammanfogas.
Är strängsammansättning ineffektiv?
sammansättningen är inte så ineffektiv, eftersom moderna kompilatorer ersätter den med en effektiv implementering baserad på StringBuilder (du ser det om du tittar på klassfilens bytekod).
Varför är det dyrt att sammanfoga strängar?
Det har varit dyrt. Låt oss först gräva i frågan om varför det är dyrt. I Java är strängobjekt oföränderliga, vilket innebär att när de väl har skapats kan du inte ändra det. Så när vi sammanfogar en sträng med en annan skapas en ny sträng, och den äldre markeras för sophämtaren.
Vilka är farorna med att använda strängsammansättning i en SQL-fråga?
1 svar
- Prestanda: När du använder en förberedd sats måste frågesyntaxen endast analyseras en gång och åtkomstsökvägen måste endast beräknas en gång för varje distinkt frågetyp. …
- Säkerhet: Att använda strängkonkatenering med data som tillhandahålls av användaren är alltid benägna att attackera SQL-injektion.
Är strängsammansättningen långsam i Python?
Det här beteendet borde inte förvåna dig: Pythons strängobjekt är oföränderliga, så varje sammanfogning genererar en ny sträng istället för att modifiera den befintliga på plats. Det är heller ingen överraskning att sammansättningar av flera strängar anses vara långsamma.