关注
func replaceSpace( s string ) string { var str strings.Builder for i := 0 ; i < len(s) ; i ++ { if s[i] != ' ' { str.WriteString(s[i:i+1]) //一个字符一个字符地拼接 } else { str.WriteString("%20") //遇到空格时拼接"%20" } } return str.String() } 字符串在 Go 语言中是不可变类型,占用内存大小是固定的,当使用 + 拼接 2 个字符串时,生成一个新的字符串,那么就需要开辟一段新的空间,新空间的大小是原来两个字符串的大小之和。拼接第三个字符串时,再开辟一段新空间,新空间大小是三个字符串大小之和,以此类推。假设一个字符串大小为 10 byte,拼接 1w 次,需要申请的内存大小为: 10 + 2 * 10 + 3 * 10 + ... + 10000 * 10 byte = 500 MB 而 strings.Builder,bytes.Buffer,包括切片 []byte 的内存是以倍数申请的。例如,初始大小为 0,当第一次写入大小为 10 byte 的字符串时,则会申请大小为 16 byte 的内存(恰好大于 10 byte 的 2 的指数),第二次写入 10 byte 时,内存不够,则申请 32 byte 的内存,第三次写入内存足够,则不申请新的,以此类推。
点赞
相关推荐
12-26 10:52
河北传媒学院 Java 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 工作半年后更确定:我们依然不欠优绩主义什么6104
- 2... 我建了一个分享实习业务的仓库,欢迎大家贡献哦3792
- 3... 岁末论道:谁才是牛客 2025 最强修仙者?3160
- 4... #牛客2025仙途报告#居然是五颗星2528
- 5... 腾讯 微信支付一面面经2517
- 6... 【2025-年终总结】25届毕业生果果牛这一年~2184
- 7... 仙途报告1964
- 8... 一个程序员的自救书|从酒吧陪玩DM到上岸大厂1918
- 9... 在当下这个社会,在人生这个无常的时代,我真心希望你和各位牛友开心1418
- 10... 壕壕壕,京东发7个月年终,此生要做东孝子1316
正在热议
更多
# 牛客2025仙途报告 #
13750次浏览 253人参与
# 实习要如何选择和准备? #
130045次浏览 1505人参与
# 2025年终总结 #
196743次浏览 3300人参与
# 元旦假期你打算怎么过 #
910次浏览 29人参与
# 你有哪些缓解焦虑的方法? #
44556次浏览 868人参与
# 格力求职进展汇总 #
197734次浏览 1267人参与
# 实习没人带,苟住还是跑路? #
475次浏览 18人参与
# 上班后和你想的一样吗? #
95162次浏览 701人参与
# 双非本科的出路是什么? #
189318次浏览 1500人参与
# 找工作,行业重要还是岗位重要? #
87531次浏览 1746人参与
# 我们是不是被“优绩主义”绑架了? #
1866次浏览 68人参与
# 今年你最想重开的一场面试是? #
12863次浏览 136人参与
# 一人说一个提前实习的好处 #
23787次浏览 318人参与
# 机械人晒出你的简历 #
148455次浏览 885人参与
# vivo工作体验 #
35066次浏览 136人参与
# 你面试体验感最差/最好的公司 #
29270次浏览 482人参与
# 礼物开箱Plog #
3275次浏览 102人参与
# 牛友们的论文几号送审 #
63111次浏览 833人参与
# 秋招落幕,你是He or Be #
22832次浏览 392人参与
# 你觉得机械有必要实习吗? #
16371次浏览 95人参与
