千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)
1、For,foreach,Enumerator.MoveNext的使用,與內(nèi)存消耗情況
for通過索引或下標(biāo)一次進(jìn)行遍歷
foreach和Enumerator.MoveNext通過迭代進(jìn)行遍歷
內(nèi)存消耗本質(zhì)沒有多少區(qū)別
迭代器有一個(gè)狀態(tài)機(jī)
before
running:yield return 或 yield break 或迭代結(jié)束
after
2、函數(shù)中多次使用string的+=處理,會產(chǎn)生大量內(nèi)存垃圾(垃圾碎片),有什么好的方法可以解決。
使用stringbuilder的append
3、當(dāng)需要頻繁創(chuàng)建使用某個(gè)對象時(shí),有什么好的程序設(shè)計(jì)方案來節(jié)省內(nèi)存?
Unity對象池
設(shè)計(jì)單例模式全局實(shí)例化一次
4、Foreach循環(huán)迭代時(shí),若把其中的某個(gè)元素刪除,程序報(bào)錯(cuò),怎么找到那個(gè)元素?以及具體怎么處理這種情況?(注:Try…Catch捕捉異常,發(fā)送信息不可行)
foreach迭代器不能進(jìn)行操作
在循環(huán)中記錄索引值或者key值,在迭代結(jié)束后,查找到這個(gè)元素,在進(jìn)行刪除操作
相關(guān)推薦