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