一周学习总结
一、算法方面
本周算法刷了5题,都是简单数组算法,学习了解了时间复杂度、空间复杂度、以及如何去评估一个排序算法相比其他是否更加快速。从算法的执行效率、以及稳定性思量。
执行效率3点:
- 时间复杂度、空间复杂度的 最坏情况 、最好情况、平均情况。从数据的有序性、逆序性对比。
- 时间复杂度的系统、低阶、常量在不同数据量场景下,导致算法的效率快慢不同。大数据量下,近乎可以忽略。
- 算法执行过程的数据比较、交换次数也是一个衡量算法的角度
稳定性
看使用算法后,数据是否存在相等元素执行前后的先后顺序不变。 原地执行。以及排序算法的内存损耗。
其次了解了冒泡排序、插入排序、选择排序的时间复杂度O(N^2). 相比更多的使用插入排序。他们三种都是属于稳定性、原地排序算法,但插入排序的交换次数会更低。还有就是认知了快排和归并排序。相比快排和归并采用的都是分而治之的思想。以大化小。掌握了这种思想,我们在去进行大数据文件操作有了一定的参考标准。
二.linux服务器性能调优
简单的学习了linux服务器性能调优,初步认识uptime、top指令的用法,以及用于查看服务器平均负载能力。评估1分钟、5分钟、15分钟内,服务器cpu的负载情况。
平均负载就是一段时间内,平均活跃的进程数。
理想的服务器运行情况是,平均负载等用于CPU的个数。如果平均负载超过CPU数,就说明了系统出现了负载。这就是值得我们去寻找原因的情况了
三、.学习一下架构设计原则
“4要1不用”原则
1.数据请求量要少,接口传参数尽量越少越好,减少服务器cpu对数据的解析,转码
2,请求数量尽量要少。限制额外的请求,如一个页面,会有一下图片cssjs 等资源,域名又不一致。页面加载的时候,请求多个不用域名,增多了dns解析
3.请求路径“节点要少”。服务与服务之前调用的路径限制。
4.相互依赖关系要少。包括强依赖【用户服务、库存服务】和若弱依赖【积分服务等】。服务之间依赖少,可以越健康
5.不用试用单点。 数据无备份、尽量实现服务无状态话。
四、本周工作
做了数字人民币交易,没有什么技术难点,交易逻辑还是原移动支付交易逻辑,明白了数币交易的流程。
还是努力进步的一周~~
有兴趣的老爷,还可以关注我的公众号【一起收破烂】,回复【006】获取 最新java面试资料以及简历模型120套哦~