开发者学堂课程【Java 面试疑难点串讲5:系统架构及项目设计:复杂度】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/28/detail/610
复杂度
目录:
一、时间复杂度
二、空间复杂度
评价一个项目的好与坏,最简单的标准:时间复杂度和空间复杂度。
一、时间复杂度
- 处理逻辑非常的复杂
- 例如:递归、循环结构复杂
- 复杂度直接的影响就是 CPU 的占用率高
二、空间复杂度
占用的内存大
例如:在进行 JDBC 进行数据查询时会出现一个问题:假设你的数据库有 1000w条数据,没有使用分页,这些记录都将加载到内存之中。所以内存占用率就会很高。
假设这些数据会占用 20G 的内存,那么一个服务器一定需要为上万人服务,这时所占用的内存非常的庞大,服务器无法处理。对于空间复杂度的操作处理,通过最简单的分页算法可以实现约定,而对于时间复杂度,太复杂的逻辑运算不会在一台服务器上进行,需要设计多台的开发服务器。
最好的效果:处理快,占用内存小。