设计模式常见概念和问题
Q1:设计模式有哪些原则? 开闭原则:OOP 中最基础的原则,指一个软件实体(类、模块、方法等)应该对扩展开放,对修改关闭。尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化。强调用抽象构建框架,用实现扩展细节,提高代码…
|
|
55
6984 字
|
1 小时
Linux
linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) 常用 系统信息: cat /proc/version: 查看Linux版本信息 lsb_release -a: 查看系统发行版本 ifconf…
|
|
127
7888 字
|
35 分钟
rsa 加密
RSA密钥生成过程: 选择两个大质数 p 和 q (例如 p=3, q=11) 计算 N = p * q (N = 3 * 11 = 33) 计算欧拉函数 φ(N) = (p-1) * (q-1) (φ(33) = 2 * 10 = 20)…
|
|
100
319 字
|
2 分钟
Redission 实现 分布式锁
基于Redission实现 Redisson 是一个基于 Redis 的 Java 客户端,它提供了许多高级功能,其中之一就是分布式锁 1 使用Lua脚本执行加锁操作: Redisson通过Lua脚本执行加锁操作。Lua脚本会判断锁是否存在…
|
|
111
342 字
|
2 分钟
Redis 实现分布式锁
V1: setnx命令 一般是使用 setnx(set if not exists) 指令,只允许被一个客户端占用。 先来先占,用完了,再调用del指令释放。 但是有个问题,如果逻辑执行到中间出现异常了,可能会导致del指令没有被调用,这样…
|
|
98
632 字
|
6 分钟
如何保证缓存与数据库的一致性?
先删缓存,再更新数据库 先删除缓存,数据库还没有更新成功,此时如果读取缓存,缓存不存在,去数据库中读取到的是旧值,缓存不一致发生。 解决方案 延时双删 为了避免更新数据库的时候,其他线程从缓存中读取不到数据,就在更新完数据库之后,再 Sle…
|
|
109
2376 字
|
9 分钟
浅析注解/反射,反射的最佳实践(模拟一个框架)
https://www.cnblogs.com/x1uc/p/18110210
|
|
116
7 字
|
几秒读完
Git 基本操作
参考自geekHour教程 基本操作 使用git init 创建一个仓库 可以指定名称 git status 查看仓库的状态 git add 添加到暂存区 可以使用通配符,例如:git add*,txt 也可以使用目录,例如:git add…
|
|
156
952 字
|
4 分钟
MySQL 测试Mybatis 中CASE WHEN 和 普通foreach update 批量更新单个字段性能 :
http://1.94.60.217:9999/java/mysql-%e4%bb%8ehashmap-%e6%89%b9%e9%87%8fupdate-redis%e7%bc%93%e5%ad%98%e5%ae%9a%e6%97%b6%e…
|
|
142
100 字
|
2 分钟