一 概述
在常见的开发过程中,我们会使用到各种开发组件,如数据库MySQL,Redis,JDK等。
二 日常工作与CRUD相关的数据结构
数据库索引,使用了Hash表,红黑树,B+树的数据结构,利用这些数据结构的目的大部分就是为了节省空间,或者优化查询速度,也就是如何优化解决一个问题的时间和空间复杂度。
Redis中支持的String,Hash,List,Set,sorted set(zset)等数据结构,同样也是对时间,空间复杂度的优化处理,其支持的非关系性数据就是另一方面了。
JDK中使用了Map,Set,List,Hash等数据结构,他们又有各自的CRUD方法,其中包括了数据结构的转换,如HashMap的链表与树之间的转换等,这些就是为了更好的处理数据,将数据以某种适合的数据结构进行存储,同时封装出各种优化后的方法。其目的本质也是基于时间复杂度和空间复杂度的考虑。
另外线程的安全性,内存的可见性等多线程问题就需要从另一个维度去认真分析。
个人愚见,以表明数据结构和算法的重要性,这样让我想到了大学高等数学老师讲的一句话,任何高深的知识最终都会回顾基础。