摘要: 23种设计模式,背后是7大设计原则。即每个设计模式都归属于一个或多个设计原则。 7大设计原则也是面向对象编程应遵循的七大原则,这些原则的思想就是,一个字:分(低耦合 )。 七大设计原则 单一职责原则 里氏替换原则 依赖倒置原则 开闭原则 迪米特法则(最少知识原则) 接口隔离原则 组合优于继承原则 单 阅读全文
posted @ 2024-04-22 07:29 狭路相逢 阅读(86) 评论(0) 推荐(0)
摘要: 汇总函数 rollup rollup是 SQL 关键字,在 MySQL 中得用with rollup。它是group by子句的扩展,用于统计后增加一行汇总数据。 举例,现有库存表,我们按仓库名称分组,统计每个仓库的产品总量,最后来一个汇总。 mysql> SELECT * FROM invento 阅读全文
posted @ 2024-04-14 10:04 狭路相逢 阅读(82) 评论(0) 推荐(0)
摘要: Caffeine 缓存是 Java 的高性能缓存库。本文简单记录下 Caffeine 缓存的用法。 依赖配置 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot 阅读全文
posted @ 2024-01-20 22:47 狭路相逢 阅读(685) 评论(0) 推荐(2)
摘要: 定义 观察者模式定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。 观察者模式中有两个角色,一个是主题(Subject),一个是观察者(Observer)。观察者会观察主题,当主题发生了变化,观察者会做出相应的处理。主题跟观察者的关系是一对多。观察者模式也叫发布 阅读全文
posted @ 2023-08-26 20:30 狭路相逢 阅读(176) 评论(0) 推荐(0)
摘要: 假设现在有这样一个方法,入参是父类型的集合参数,这是个通用方法,你需要共用它,你现在要传子类型集合进去,怎么办? class Animal { } class Dog extends Animal { } public class Service { public void doSth() { Li 阅读全文
posted @ 2023-08-17 23:34 狭路相逢 阅读(240) 评论(0) 推荐(0)
摘要: ### 单体应用存在的问题 - 随着业务的发展,开发变得越来越复杂。 - 修改、新增某个功能,需要对整个系统进行测试、重新部署。 - 一个模块出现问题,很可能导致整个系统崩溃。 - 多个开发团队同时对数据进行管理,容易产生安全漏洞。 - 各个模块使用同一种技术进行开发,各个模块很难根据实际情况选择更 阅读全文
posted @ 2023-08-05 10:22 狭路相逢 阅读(64) 评论(0) 推荐(0)
摘要: ## 知识点 1. class 文件结构 2. classloader 3. JVM 运行时数据区 4. 垃圾回收器和垃圾回收算法 5. JIT ## 类加载机制 JVM把`.class`文件加载到内存中时,创建对应的`class`对象,这个过程称之为类的加载机制。 ## 类的加载过程 Loadin 阅读全文
posted @ 2023-07-17 11:37 狭路相逢 阅读(57) 评论(0) 推荐(0)
摘要: 起步依赖 Spring Boot 默认导入父工程依赖spring-boot-starter-parent,它里面已经申明好了众多的可能会用到的依赖。比如常用的spring-boot-starter-web,我们需要用什么,就在自己的pom.xml文件中定义就好了。 <parent> <groupId 阅读全文
posted @ 2023-07-12 18:33 狭路相逢 阅读(69) 评论(0) 推荐(0)
摘要: 放眼望去,`java.util.concurrent`包下类大致包括:atomic 原子类、锁、并发集合、线程池、工具类。我们挑重要的了解一下。 ## Atomic 原子类 Java针对并发编程已经有了各种锁,为什么还需要原子类?原子类一定有些特别的应用场景? 在很多时候,我们需要的仅仅是一个简单的 阅读全文
posted @ 2023-07-11 18:12 狭路相逢 阅读(194) 评论(0) 推荐(0)
摘要: 本文记录一些概念的定义或解释,都是网上 copy 来的,作回顾之用。 阅读全文
posted @ 2023-07-01 10:44 狭路相逢 阅读(75) 评论(0) 推荐(0)