您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
把string当enum用,有性能损失吗?
字符串,性能,复杂度把string当enum用,有性能损失吗?
发布时间:2019-02-08加入收藏来源:互联网点击:
把string当enum用,有性能损失吗?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
在Java编程中有。
如果有选择,使用enum是比String更好的方法。 它的性能优于String,同时还是类型安全的。如果参数集有限并且在编译时已知,那么使用enum。但如果参数集在编译时未知或者是开放的,那也就别无选择了,只能使用字符串。
回答于 2019-09-11 08:43:50
有。
以c语言为例,在内存中创建一个字符串至少需要一个char数组来存储,因为要存储结束标识符;而枚举实际则是一个结构,其内的枚举项可以定义为整型,要比字符串的存储方便,也开销少。
而且把字符串当做枚举来用,字符串也容易写错,而枚举都定义成数字常量,编译器编译时容易发现错误,提示开发者及时改正,便于维护。
回答于 2019-09-11 08:43:50
结论是会有性能损失
主要是比较两个对象
enum 可以理解为单例的,比较时直接比较对象引用,可以简单的理解为整型对象比较,时间复杂度是 1
string 呢,实际用到 equals 方法,看过代码应该知道,是逐个字符比较的。时间复杂度是 n,字符串越长越耗时
作为 map 的 key,或者用到 switch 语句,这样的性能差异都不算小了
回答于 2019-09-11 08:43:50
损耗不大的 性能最大的损耗在于磁盘IO 网络IO
真没有必要担心这个 自己测试便知
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |