本申請(qǐng)涉及計(jì)算機(jī),特別涉及字符串更新方法及裝置。
背景技術(shù):
1、在編程中,字符串是由零個(gè)或多個(gè)字符組成的一系列字符,它通常用于表示文本數(shù)據(jù),是非常重要的數(shù)據(jù)類型之一。處理字符串是許多程序的基本需求。然而,傳統(tǒng)的字符串對(duì)象在創(chuàng)建后是不可變的,一旦字符串被創(chuàng)建,其內(nèi)容就不能再被更改。這種不可變性帶來了優(yōu)點(diǎn)的同時(shí)缺點(diǎn)也較為明顯。當(dāng)需要對(duì)字符串進(jìn)行拼接、替換、大小寫轉(zhuǎn)換等修改操作時(shí),都會(huì)創(chuàng)建一個(gè)新的字符串實(shí)例,這不僅導(dǎo)致了額外的內(nèi)存開銷,還會(huì)增加垃圾回收的頻率,產(chǎn)生大量的內(nèi)存碎片。因此,亟需一種較為有效的字符串更新方法以解決上述問題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本申請(qǐng)實(shí)施例提供了一種字符串更新方法,以解決現(xiàn)有技術(shù)中存在的技術(shù)缺陷。本申請(qǐng)實(shí)施例同時(shí)提供了一種字符串更新裝置,一種計(jì)算設(shè)備,一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),以及一種計(jì)算機(jī)程序產(chǎn)品。
2、根據(jù)本申請(qǐng)實(shí)施例的第一方面,提供了一種字符串更新方法,包括:
3、響應(yīng)于字符串操作請(qǐng)求在預(yù)設(shè)內(nèi)存塊中確定字符串內(nèi)存,并在所述字符串內(nèi)存中創(chuàng)建字符串對(duì)象;
4、解析所述字符串操作請(qǐng)求,獲得初始字符串和字符串操作信息;
5、將所述初始字符串存儲(chǔ)至所述字符串對(duì)象,并按照所述字符串操作信息將所述初始字符串更新為目標(biāo)字符串。
6、可選地,所述在所述字符串內(nèi)存中創(chuàng)建字符串對(duì)象,包括:
7、確定字符串布局信息,并根據(jù)所述字符串布局信息將所述字符串內(nèi)存劃分為初始字符串?dāng)?shù)據(jù)內(nèi)存和字符串動(dòng)態(tài)內(nèi)存;
8、將所述字符串操作請(qǐng)求對(duì)應(yīng)的原始字符串信息存儲(chǔ)至所述初始字符串?dāng)?shù)據(jù)內(nèi)存,獲得字符串?dāng)?shù)據(jù)內(nèi)存;
9、基于所述字符串?dāng)?shù)據(jù)內(nèi)存和所述字符串動(dòng)態(tài)內(nèi)存創(chuàng)建所述字符串對(duì)象。
10、可選地,所述響應(yīng)于字符串操作請(qǐng)求在預(yù)設(shè)內(nèi)存塊中確定字符串內(nèi)存,包括:
11、響應(yīng)于所述字符串操作請(qǐng)求確定所述字符串操作請(qǐng)求對(duì)應(yīng)的字符串作用域;
12、在所述字符串作用域關(guān)聯(lián)目標(biāo)函數(shù)的情況下,在堆棧中確定所述預(yù)設(shè)內(nèi)存塊,并在所述預(yù)設(shè)內(nèi)存塊中確定所述字符串內(nèi)存;
13、在所述字符串作用域非關(guān)聯(lián)目標(biāo)函數(shù),且所述字符串操作任務(wù)執(zhí)行完成的情況下,在內(nèi)存池中確定所述預(yù)設(shè)內(nèi)存塊,并在所述預(yù)設(shè)內(nèi)存塊中確定所述字符串內(nèi)存。
14、可選地,所述解析所述字符串操作請(qǐng)求,獲得初始字符串和字符串操作信息之后,還包括:
15、在基于所述初始字符串和所述字符串操作信息確定所述字符串操作信息不滿足字符串操作內(nèi)存條件的情況下,生成內(nèi)存需求信息,并基于所述內(nèi)存需求信息在所述預(yù)設(shè)內(nèi)存塊中確定目標(biāo)字符串內(nèi)存;
16、將所述目標(biāo)字符串內(nèi)存作為所述字符串內(nèi)存,并執(zhí)行所述在所述字符串內(nèi)存中創(chuàng)建字符串對(duì)象的步驟。
17、可選地,所述按照所述字符串操作信息將所述初始字符串更新為目標(biāo)字符串之后,還包括:
18、基于所述目標(biāo)字符串執(zhí)行所述字符串操作請(qǐng)求對(duì)應(yīng)的字符串操作任務(wù);
19、在所述字符串作用域關(guān)聯(lián)目標(biāo)函數(shù),且所述目標(biāo)函數(shù)執(zhí)行完成的情況下,釋放關(guān)聯(lián)所述堆棧的所述字符串內(nèi)存;
20、在所述字符串作用域非關(guān)聯(lián)目標(biāo)函數(shù),且所述字符串操作任務(wù)執(zhí)行完成的情況下,釋放關(guān)聯(lián)所述內(nèi)存池的所述字符串內(nèi)存。
21、可選地,所述按照所述字符串操作信息將所述初始字符串更新為目標(biāo)字符串,包括:
22、基于所述字符串操作信息確定字符串合并信息,以及確定所述初始字符串包含的被合并字符串和合并字符串;
23、根據(jù)所述字符串合并信息對(duì)所述被合并字符串和所述合并字符串進(jìn)行合并,獲得所述目標(biāo)字符串。
24、可選地,所述按照所述字符串操作信息將所述初始字符串更新為目標(biāo)字符串,包括:
25、基于所述字符串操作信息確定字符串修改信息,以及確定所述初始字符串包含的待修改字符串;
26、根據(jù)所述字符串修改信息對(duì)所述待修改字符串進(jìn)行修改,獲得所述目標(biāo)字符串。
27、根據(jù)本申請(qǐng)實(shí)施例的第二方面,提供了一種字符串更新裝置,包括:
28、確定模塊,被配置為響應(yīng)于字符串操作請(qǐng)求在預(yù)設(shè)內(nèi)存塊中確定字符串內(nèi)存,并在所述字符串內(nèi)存中創(chuàng)建字符串對(duì)象;
29、解析模塊,被配置為解析所述字符串操作請(qǐng)求,獲得初始字符串和字符串操作信息;
30、更新模塊,被配置為將所述初始字符串存儲(chǔ)至所述字符串對(duì)象,并按照所述字符串操作信息將所述初始字符串更新為目標(biāo)字符串。
31、根據(jù)本申請(qǐng)實(shí)施例的第三方面,提供了一種計(jì)算設(shè)備,包括:
32、存儲(chǔ)器和處理器;
33、所述存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令,所述處理器執(zhí)行所述計(jì)算機(jī)可執(zhí)行指令時(shí)實(shí)現(xiàn)所述字符串更新方法的步驟。
34、根據(jù)本申請(qǐng)實(shí)施例的第四方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,該指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)所述字符串更新方法的步驟。
35、根據(jù)本申請(qǐng)實(shí)施例的第五方面,提供了一種芯片,其存儲(chǔ)有計(jì)算機(jī)程序,該計(jì)算機(jī)程序被芯片執(zhí)行時(shí)實(shí)現(xiàn)所述字符串更新方法的步驟。
36、根據(jù)本說明書實(shí)施例的第六方面,提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序或指令,該計(jì)算機(jī)程序或指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述字符串更新方法的步驟。
37、本申請(qǐng)?zhí)峁┑淖址路椒?,響?yīng)于字符串操作請(qǐng)求在預(yù)設(shè)內(nèi)存塊中確定字符串內(nèi)存,并在字符串內(nèi)存中創(chuàng)建字符串對(duì)象。解析字符串操作請(qǐng)求,獲得初始字符串和字符串操作信息。將初始字符串存儲(chǔ)至字符串對(duì)象,并按照字符串操作信息將初始字符串更新為目標(biāo)字符串。存在字符串更新需求時(shí),利用預(yù)設(shè)內(nèi)存塊進(jìn)行字符串更新,在預(yù)設(shè)內(nèi)存塊中動(dòng)態(tài)更新字符串,避免了頻繁的內(nèi)存分配和垃圾回收操作,提高業(yè)務(wù)性能。
1.一種字符串更新方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的字符串更新方法,其特征在于,所述在所述字符串內(nèi)存中創(chuàng)建字符串對(duì)象,包括:
3.根據(jù)權(quán)利要求1所述的字符串更新方法,其特征在于,所述響應(yīng)于字符串操作請(qǐng)求在預(yù)設(shè)內(nèi)存塊中確定字符串內(nèi)存,包括:
4.根據(jù)權(quán)利要求1所述的字符串更新方法,其特征在于,所述解析所述字符串操作請(qǐng)求,獲得初始字符串和字符串操作信息之后,還包括:
5.根據(jù)權(quán)利要求3所述的字符串更新方法,其特征在于,所述按照所述字符串操作信息將所述初始字符串更新為目標(biāo)字符串之后,還包括:
6.根據(jù)權(quán)利要求1所述的字符串更新方法,其特征在于,所述按照所述字符串操作信息將所述初始字符串更新為目標(biāo)字符串,包括:
7.根據(jù)權(quán)利要求1所述的字符串更新方法,其特征在于,所述按照所述字符串操作信息將所述初始字符串更新為目標(biāo)字符串,包括:
8.一種字符串更新裝置,其特征在于,包括:
9.一種計(jì)算設(shè)備,其特征在于,包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其存儲(chǔ)有計(jì)算機(jī)指令,其特征在于,該指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-7任意一項(xiàng)所述字符串更新方法的步驟。
11.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序或指令,其特征在于,該計(jì)算機(jī)程序或指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-7任意一項(xiàng)所述字符串更新方法的步驟。