- 博客(13)
- 收藏
- 关注
原创 策略模式实现
策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。该模式定义了一系列算法,将每个算法封装到一个独立的类中,并使它们可以互相替换。这样,客户端就可以在不修改原始类的情况下选择不同的算法来解决特定的问题。
2024-04-21 14:01:26 145 1
原创 架构师如何进行技术选型
综上所述,Mycat 和 ShardingJDBC 都有各自的优点和缺点,选择合适的中间件需要根据具体的业务需求、技术栈和团队水平来进行评估和决策。作为架构师,在进行技术选型时,需要考虑多个方面,包括项目需求、技术特性、团队技术水平、生态系统支持等。综上所述,技术选型需要综合考虑项目需求、技术特性、团队水平、生态系统支持等多个因素,并采取科学合理的方法和策略来进行评估和决策。
2024-04-21 13:51:19 572 1
原创 代理模式和简单实现
静态代理是在编译时就确定了代理类和被代理类的关系,而动态代理是在运行时动态生成代理类的。静态代理需要为每一个被代理类编写一个代理类,而动态代理可以代理任意一个实现了接口的类。静态代理相对简单,易于理解和控制,而动态代理更加灵活,但性能相对较低。
2024-04-20 13:22:14 2003
原创 Mysql行锁和表锁
总体来说,加索引可以减少对数据的锁定范围,提高数据库的并发性能,减少锁表延迟。但同时也需要注意索引的选择和使用,因为不合适的索引可能会增加数据库的负担,导致性能下降。在MySQL中,默认情况下,使用的是自动锁定(autocommit)模式,即每个SQL语句都会自动提交一个事务,并释放相应的锁。以上问题涉及到了数据库基本概念、锁的工作原理、性能优化等方面,通过深入理解这些问题,可以更好地应对相关的面试考核。在MySQL中,行锁和表锁是两种常见的锁定机制,它们用于控制对数据库中行或表的并发访问。
2024-04-15 14:32:09 1860 2
原创 代码优化方式
锁表延迟解决锁表延迟设计幂等性的接口“一锁二判三更新”方式分布式事务基于RocketMQ事务消息解决分布式场景下的数据一致性问题热门数据接口耗时长解决数据库优化并发处理缓存机制OOM的原因及解决方法原因哪些错误编码可以导致OOM如何排查解决OOMGC问题和解决方法GC问题解决方式死锁的原因和解决方法死锁出现的原因如何预防和解决预防死锁:解决死锁:
2024-04-15 14:05:44 379 3
原创 java问题总结
Int类型Math.abs(-2147483648)绝对值(取反)值不变hashcode和equals方法静态方法、静态属性不能使用类定义的泛型Java中的常量池常见的加密算法spring如何解决循环依赖
2024-03-21 13:40:59 156 1
原创 mysql事务
然后我了解到InnoDB为数据库中的每一行添加了三个隐藏字段:DB_TRX_ID(事务版本号)、DB_ROLL_PTR(回滚指针)、DB_ROW_ID(隐藏ID)。DB_TRX_ID:记录了创建/更新这条数据的事务版本号(版本号会递增)。DB_ROLL_PTR:记录了一个指向undo log中历史版本的数据指针。(用来支持回滚操作)DB_ROW_ID:一个自增的隐藏行ID。
2024-03-15 21:35:03 1395
原创 分布式锁redis实现
分布式锁redis实现不加过期时间加过期时间不加过期时间/** * 加锁 * @param key 业务描述字段+主键id * @param value 当前时间+超时时间 * @return */ public boolean lock(String key, String value) { if (stringRedisTemplate.opsForValue().setIfAbsent(key, value)) {
2022-03-09 18:39:22 10
原创 HashMap常用方法
HashMap常用方法代码代码public class HashMapDemo { public Map<String,String> getInfo(){ Map<String, String> map = new HashMap<>(8); map.put("1", "a"); map.put("2", "b"); map.put("3", "c"); map.put("4",
2022-01-07 10:00:26 284
原创 Linux常用操作(Centos7)
Linux常用命令文件信息ls命令vi命令三级目录文件信息ls命令输入ls -l打印当前路径下的信息第一列第一个字母有“-”、“l”、“d”,分别指文件、链接、目录(文件夹)。补充:echo1.sh 以 “.sh”结尾,是linux的可执行文件。可执行文件在执行时的命令是路径+文件全称,路径可以是相对路径(./echo1.sh )和绝对路径(/root/echo1.sh),如不加路径则会在环境变量的路径中找该文件。例如:[root@localhost test]# vi echo1.sh
2021-09-23 23:50:18 148
原创 java中final关键字详解
java中final关键字详解被final修饰的属性不能修改。被修饰的属性是一个对象,该对象的属性没有被final修饰,则可以修改该属性,如被final修饰,则不能修改。被final修饰的属性,当前引用地址(指向堆中对象的地址)不能改变。被final修饰的类不能继承,被final修饰的方法不能重写public class FinalTest { public static void main(String[] args) { XiaoMing xiaoMing = ne
2021-04-13 14:52:08 54
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人