Սա «լարերի միացումն է», և դա վատ պրակտիկա է. … Ոմանք կարող են ասել, որ այն դանդաղ է, հիմնականում, քանի որ ստացված տողի մասերը կրկնօրինակվում են մի քանի անգամ Իրոք, յուրաքանչյուր + օպերատորի վրա String դասը հատկացնում է նոր բլոկ հիշողության մեջ և պատճենում է այն ամենը, ինչ կա դրա մեջ; գումարած վերջածանցը միացվում է:
Արդյո՞ք լարերի միացումն անարդյունավետ է:
միացումն այնքան էլ անարդյունավետ չէ, քանի որ ժամանակակից կոմպիլյատորներն այն փոխարինում են StringBuilder-ի վրա հիմնված արդյունավետ իրականացմամբ (դա կտեսնեք, եթե նայեք դասի ֆայլի բայթ կոդը):
Ինչու է լարերի միացումը թանկ:
Դա թանկ է եղել: Եկեք նախ փորփրենք այն հարցը, թե ինչու է դա թանկ:Java-ում լարային օբյեկտները անփոփոխ են, ինչը նշանակում է, որ այն ստեղծվելուց հետո դուք չեք կարող փոխել այն: Այսպիսով, երբ մենք միացնում ենք մի տողը մյուսի հետ, ստեղծվում է նոր տող, իսկ ավելի հինը նշվում է աղբահանի համար:
Ի՞նչ վտանգներ է սպառնում SQL հարցումում տողերի միացումն օգտագործելը:
1 Պատասխան
- Արդյունավետություն. Պատրաստված հայտարարություն օգտագործելիս հարցում-շարահյուսությունը պետք է վերլուծվի միայն մեկ անգամ, իսկ մուտքի ուղին պետք է հաշվարկվի միայն մեկ անգամ յուրաքանչյուր առանձին հարցման տեսակի համար: …
- Անվտանգություն. օգտագործողի կողմից տրամադրված տվյալների հետ լարային կապակցման օգտագործումը միշտ հակված է SQL-ներարկման հարձակումներին:
Արդյո՞ք տողերի միացումը դանդաղ է Python-ում:
Այս վարքագիծը չպետք է զարմացնի ձեզ. Python-ի տողային օբյեկտները անփոփոխ են, ուստի յուրաքանչյուր կապակցում ստեղծում է նոր տող՝ գոյություն ունեցողը տեղում փոփոխելու փոխարեն: Զարմանալի չէ նաև, որ բազմաթիվ տողերի միացումները համարվում են դանդաղ: