前言 前文分析了ArrayList的源码,这一篇分享的是LinkedList。我们都知道它的底层是由链表实现的,所以我们要明白什么是链表? 一、LinkedList简介 1.1、LinkedList概述 LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的。 LinkedList…
01 复杂度综述 1、什么是复杂度 软件设计的核心在于降低复杂性。–《软件设计的哲学》 业界对于复杂度并没有统一的定义,斯坦福教授John Ousterhout从认知负担和工作量方面给出了一个复杂度量公式 子模块的复杂度cp乘以该模块对应的开发时间权重值tp,累加后得到系统的整体复杂度C 这里的子模块复杂度cp是一个经验值…
4.1.1.6 兼容 我们在对老系统,老功能进行重构迭代的时候,一定要做好兼容,否则上线后会出现重大的线上问题,公司内外有大量因为没有做好兼容性,而导致资损的情况。兼容分为:向前兼容性和向后兼容性,需要好好的区分他们,如下是他们的定义:…
日志记录的重要性及结构化日志的引入 日志记录是应用程序故障排除和系统可观测性的核心部分,是支持系统稳定运行的三大支柱之一(其他两个支柱为指标和分布式追踪)。在生产环境中,日志文件作为问题诊断的重要依据,帮助开发者快速定位并解决问题。通常情况下,日志以人类可读的文本格式输出。 结构化日志…
分享一波超干的云原生面试题,内容涵盖K8S、Docker、DevOps、CI/CD,有需要的小伙伴欢迎自取: 夸克网盘地址:https://pan.quark.cn/s/28999d1ba262
1.为什么需要压缩json? 由于业务需要,存入redis中的缓存数据过大,占用了10+G的内存,内存作为重要资源,需要优化一下大对象缓存,采用gzip压缩存储,可以将 redis 的 kv 对大小缩小大约 7-8 倍,加快存储、读取速度 2.环境搭建 详建redis模块的docker目录 version: '3' services: redis:…