2023年12月12日

摘要: 二叉树是一种非常常见的数据结构,它每个节点最多有两个子节点,通常被称为左子节点和右子节点。下面是一些关于二叉树的基本操作和使用: 创建二叉树:可以使用不同的方式创建二叉树,例如插入节点、复制现有二叉树等。二叉树的创建取决于所需要的数据结构和其用途。 插入节点:在二叉树中插入节点的方法取决于节点的位置 阅读全文
posted @ 2023-12-12 11:29 常乐° 阅读(9) 评论(0) 推荐(0) 编辑

2023年12月7日

摘要: 源自: https://mp.weixin.qq.com/s?__biz=MzAxMjY5NDU2Ng==&mid=2651866587&idx=1&sn=adb24cc2766eefccc72efba8aba9d259&chksm=80490092b73e898471a0b31e7ae19db4a 阅读全文
posted @ 2023-12-07 09:24 常乐° 阅读(147) 评论(0) 推荐(0) 编辑

2023年8月28日

摘要: 当执行插入批量数据时,可能会出现重复健问题。有以下解决方案: 1. 使用INSERT IGNORE语句:这样会忽略重复的插入,不会发生任何错误,但也不会插入新数据。 2. 使用REPLACE INTO语句:这会删除已经存在的行,并插入新行,但不会保留原有行的任何数据。 3. 使用INSERT INT 阅读全文
posted @ 2023-08-28 10:54 常乐° 阅读(273) 评论(0) 推荐(0) 编辑

2023年3月18日

摘要: 全局ID生成器,满足以下特性: 1.唯一性,2.高可用,3.高性能,4.递增性,5.安全性。 实现:拼接,ID会用数值:Long型 直接插入数据库 策略: UUID;Redis自增;雪花算法;数据库自增 Redis自增: 方便统计订单量,每天一个Key。ID是时间戳+计数器 阅读全文
posted @ 2023-03-18 21:20 常乐° 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 悲观锁:简单粗暴,性能一般。 认为线程安全一定会发生,在操作数据之前获取锁,确保线程串行执行。 Synchronized。Lock都属于悲观锁 乐观锁,性能较好。 认为线程安全问题不一定存在,因此不加锁。只是在更新数据时去判断有没有其他线程对数据做修改。 如果没有修改则认为是安全。 如果被其他线程修 阅读全文
posted @ 2023-03-18 21:20 常乐° 阅读(18) 评论(0) 推荐(0) 编辑

2023年3月17日

摘要: 缓存: 数据交换的缓冲区,是存储数据的临时地方,一般读写性能较高。 作用: 降低后端负载 提高读写效率,降低相应时间。 成本: 数据一致性和代码维护成本 缓存更新策略: 1.内存淘汰: 解决内存不足问题,默认开启。一致性较差,维护成本无。 2.超时剔除: 给缓存添加TTL时间,到期自动删除缓存,下次 阅读全文
posted @ 2023-03-17 21:54 常乐° 阅读(16) 评论(0) 推荐(0) 编辑

2023年3月10日

摘要: (线程)Java有几种方法创建线程执行任务1.单继承Thread,2.实现Runnable接口 (匿名内部类)3.Callable接口 4.线程池 3种循环:while;do-while;for3种跳出循环break return continue 三大特性之一:继承子类会自动获得父类的功能子类会获 阅读全文
posted @ 2023-03-10 22:29 常乐° 阅读(31) 评论(0) 推荐(0) 编辑

2023年3月2日

摘要: 1.更新数据库再更新缓存2.删除缓存再更新数据库 (改善操作) 最终:先删缓存,再更新数据库。读的时候先读缓存,没有就去数据库,同步更新缓存。 阅读全文
posted @ 2023-03-02 10:18 常乐° 阅读(50) 评论(0) 推荐(0) 编辑

2023年3月1日

摘要: 阅读全文
posted @ 2023-03-01 21:26 常乐° 阅读(11) 评论(0) 推荐(0) 编辑

2023年2月28日

摘要: 1.重载(类内部继承)。 通过参数来选择使用哪个方法 阅读全文
posted @ 2023-02-28 11:19 常乐° 阅读(17) 评论(0) 推荐(0) 编辑