java枚舉類型enum用法 把string當(dāng)enum用,有性能損失嗎?
把string當(dāng)enum用,有性能損失嗎?是的。以C語(yǔ)言為例,在內(nèi)存中創(chuàng)建一個(gè)字符串至少需要存儲(chǔ)一個(gè)字符數(shù)組,因?yàn)樗枰鎯?chǔ)結(jié)束標(biāo)識(shí)符;而枚舉實(shí)際上是一種結(jié)構(gòu),枚舉項(xiàng)可以定義為整數(shù),這比字符串存儲(chǔ)更方
把string當(dāng)enum用,有性能損失嗎?
是的。
以C語(yǔ)言為例,在內(nèi)存中創(chuàng)建一個(gè)字符串至少需要存儲(chǔ)一個(gè)字符數(shù)組,因?yàn)樗枰鎯?chǔ)結(jié)束標(biāo)識(shí)符;而枚舉實(shí)際上是一種結(jié)構(gòu),枚舉項(xiàng)可以定義為整數(shù),這比字符串存儲(chǔ)更方便、更便宜。
此外,如果字符串用作枚舉,則字符串很容易被錯(cuò)誤寫入,并且枚舉被定義為數(shù)字常量。編譯器在編譯時(shí)容易發(fā)現(xiàn)錯(cuò)誤,并提示開發(fā)人員及時(shí)改正,易于維護(hù)。