06 2023 档案

摘要:## 行锁升级为表锁 总所周知,MySQL 的 InnoDB 存储引擎支持事务,支持行级锁(InnoDB 的行锁是通过给索引项加锁实现的)。得益于这些特性,数据库支持高并发。如果 InnoDB 更新数据使用的不是行锁,而是表锁呢?是的,InnoDB 其实很容易就升级为表锁,届时并发性将大打折扣了。 阅读全文
posted @ 2023-06-30 20:27 一个苦逼的23届毕业生 阅读(412) 评论(0) 推荐(0) 编辑
摘要:##### 1.尽量不要在列上运算,这样会导致索引失效 ``` 例如:select * from admin where year(admin_time)>2014 优化为: select * from admin where admin_time> '2014-01-01′ ``` ##### 2 阅读全文
posted @ 2023-06-27 19:24 一个苦逼的23届毕业生 阅读(13) 评论(0) 推荐(0) 编辑
摘要:### 一、最左匹配原则的原理 ``` MySQL 建立多列索引(联合索引)有最左匹配的原则,即最左优先: 如果有一个 2 列的索引 (a, b),则已经对 (a)、(a, b) 上建立了索引; 如果有一个 3 列索引 (a, b, c),则已经对 (a)、(a, b)、(a, b, c) 上建立了 阅读全文
posted @ 2023-06-27 16:20 一个苦逼的23届毕业生 阅读(268) 评论(0) 推荐(0) 编辑
摘要:### 为什么要使用b+树作为索引数据结构 1. 范围查询效率高:b+树所有的关键字节点都被连成一个有序的链表,可以很方便的顺序查询,范围查询效率高。 2. 磁盘读写性能高:b+树的非叶子节点不存储数据,只存储关键字和指向子节点的指针,所以每个节点可以存储的关键字就增多,一次性读入内存的关键字也增多 阅读全文
posted @ 2023-06-27 15:31 一个苦逼的23届毕业生 阅读(116) 评论(0) 推荐(0) 编辑
摘要:### 方法1:在insert标签中使用userGeneratedKeys和keyProperty标签: ``` insert into names (name) values (#{name}) ``` useGeneratedKeys = true 表示开启自动生成主键的功能,keyProper 阅读全文
posted @ 2023-06-26 11:45 一个苦逼的23届毕业生 阅读(1560) 评论(0) 推荐(0) 编辑
摘要:# 三级缓存 ``` //一级缓存,存放的是完整的bean private final Map singletonObjects = new ConcurrentHashMap(256); //二级缓存,存放的是半成品的bean,未完成属性注入 private final Map earlySing 阅读全文
posted @ 2023-06-25 18:58 一个苦逼的23届毕业生 阅读(35) 评论(0) 推荐(0) 编辑
摘要:# spring中的常用注解 - @Compontent:表示这是spring管理的一个组件 - @Controller:控制层的组件 - @Service:业务层的组件 - @Repository:持久层组件 - @Autoeire:自动装配注解 - @Qualifier:Autowired默认是 阅读全文
posted @ 2023-06-25 11:12 一个苦逼的23届毕业生 阅读(9) 评论(0) 推荐(0) 编辑
摘要:首先创建一个程序,写两个线程 ``` public class 死锁 { private static final String lock1 = "lock1"; private static final String lock2 = "lock2"; public static void main 阅读全文
posted @ 2023-06-21 18:54 一个苦逼的23届毕业生 阅读(59) 评论(0) 推荐(0) 编辑
摘要:### BigDecimal - 去一家公司笔试遇到一个这样的问题,问输出结果: ``` BigDecimal bigDeciml1 = new BigDecimal(2); BigDecimal bigDeciml2 = new BigDecimal(2.1); BigDecimal bigDec 阅读全文
posted @ 2023-06-20 10:46 一个苦逼的23届毕业生 阅读(140) 评论(0) 推荐(0) 编辑
摘要:### 1.线程池七个参数 **注意,线程池刚创建时没有线程,任务来了才开始创建线程,或者调用prestartCoreThread()/prestartAllCoreThreads() 创建好核心线程。** ``` ThreadPoolExecutor(int corePoolSize, int m 阅读全文
posted @ 2023-06-20 10:29 一个苦逼的23届毕业生 阅读(15) 评论(0) 推荐(0) 编辑
摘要:### 概念 - 浅拷贝:复制基本数据类型的值,以及实例对象的引用地址,拷贝出来的对象,内部类属性指向的是同一个对象 - 深拷贝:即会拷贝基本数据类型的值,也会针对实例对象的引用地址所指向的对象进行复制,拷贝出来的对象,内部类属性指向的不是同一个对象。 ### Object类中的clone()方法。 阅读全文
posted @ 2023-06-19 10:42 一个苦逼的23届毕业生 阅读(48) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示