摘要:
0.前言 本篇文章是<<代码整洁之道>>的学习总结, 通过这篇文章你将了解到整洁的代码对项目、公司和你的重要性,以及如何书写整洁的代码. 通过命名、类、函数、测试这四个章节,使我们的代码变得整洁. 1.为什么要保持代码整洁? 不整洁的代码随着时间的增加而增加时,生产力会随之降低. 导致的结果就是: 阅读全文
摘要:
1. 前言 工作中有可能遇到 java.lang.OutOfMemoryError: Java heap space 内存溢出异常, 本文提供一些内存溢出的分析及解决问题的思路. 常见异常如下: 2022-01-31 16:07:29.639 ERROR 1981 [http-nio-8080-ex 阅读全文
摘要:
背景 将log4j.xml的日志级别从error调整为info后,进行压测发现CPU占用很高达到了90%多(之前也就是50%,60%的样子). 问题排查 排查思路: 看进程中的线程到底执行的是什么,导致CPU占用较高. 1. 使用top命令查看到底是哪个应用占用的cpu比较高 左边的图是日志级别为i 阅读全文
摘要:
起因 pg数据库的连接无法回收,并且某一连接如果查询的次数过度会占用很多的内存,最终导致内存溢出 解决思路 利用Druid的过滤器的机制,先找到统计连接的使用次数的参数,设定到一定次数之后手动断开连接. 开始解决 选择了statementExecuteQueryAfter()这个钩子函数作为切入点, 阅读全文
摘要:
前言 最近学习了<<Spring源码深度解析>>受益匪浅,本博客是对学习内容的一个总结、分享,方便日后自己复习或与一同学习的小伙伴一起探讨之用. 建议与源码配合使用,效果更嘉,使用的spring版本为5.0.x: 官方源码下载 添加中文注解版源码 下面正文开始. 1. 容器的实现 本文要分享的内容就 阅读全文
摘要:
前言 上一篇博客介绍了[二叉树].二叉搜索树在树是平衡的情况下搜索、插入和删除的效率都很好,但是如果二叉搜索树是不平衡的那么它的效率就不那么令人满意了,而红黑树解决了二叉搜索树的这个问题,可以始终保持树是平衡(大致平衡)的. 阅读前须知: 如果您对二叉树不太了解,请移步[二叉树] 本文用到的评估红黑 阅读全文
摘要:
前言 上一篇博客为大家介绍了数组与链表这两种数据结构,虽然它们在某些方面有着自己的一些优点,但是也存在着一些自身的缺陷,本篇博客为将为大家介绍一下数据结构 二叉树,它在保留数组和链表的优点的同时也改善了它们的缺点(当然它也有着自己的缺点,同时它的实现也比较复杂). 1. 数组和链表的特点 数组的优点 阅读全文
摘要:
前言 数组和链表是两种数据结构,数组非常简单易用但是它有两个非常大的缺点,一个是数组一旦创建无法扩展,另一个则是数组的查找和删除的速度很慢. 链表改善了一些数组的缺点,但是同样的链表自身也存在一些自己的缺点. 本篇博客将为大家介绍一下这数组和链表特点及各自的优缺点. 阅读前的准备工作 大O表示法,一 阅读全文
摘要:
1. 这是干什么的? 名称来源:使用大写字母O 含义: order of (大约是). 粗略的评价计算机算法效率的一种方法. 2. 如何进行评价的 ? 大O表示法的实质并不是对运行时间给出实际值,而是表达了运行时间是如何受数据项个数所影响的. 大O加上()的形式,里面其实包裹的是一个函数f(),O( 阅读全文
摘要:
前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找 "设计模式学习笔记汇总地址" 1. 原形模式 可以通过一个原型对象克隆出多个一模一样的对象,该模式称之为原型模式 2. 定义 原型模式(Prototype Pattern): 使用原型实例指定创建对象的种类,并且通过拷贝 阅读全文