全解系列
半根辣条
这个作者很懒,什么都没留下…
展开
-
Mybatis知识
Q:Mybatis中#{}和${}的区别是什么? A: #{}是预编译处理,${}是字符串替换。 Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值; Mybatis 在处理时,就是把{}时,就是把时,就是把{}替换成变量的值。 使用#{}可以有效的防止 SQL 注入,提高系统安全性。 Q:讲下 MyBatis 的缓存? A: MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级原创 2020-09-05 18:43:57 · 204 阅读 · 0 评论 -
数据库知识详解
数据库知识详解 Q:我看你简历上写到了熟悉MySQL数据库以及索引的相关知识,我们就从索引开始,索引有哪些数据结构? A:Hash、B+ Q:为什么哈希表、完全平衡二叉树、B树、B+树都可以优化查询,为何Mysql独独喜欢B+树? A: 哈希表的特点就是可以快速的精确查询,但是不支持范围查询。 例如下sql select * from student where name = '张三'; 可以直接对‘张三’按哈希算法算出来一个数组下标,然后可以直接从数据中取出数据并拿到所对应那一行数据的地址,进而查询那原创 2020-08-03 09:46:19 · 309 阅读 · 0 评论 -
多线程全解
作为面试时提问的半壁江山,多线程一直是一大考点,写篇详细的全解,等面试的时候吊打面试官!加油,奥利给! 多线程全解 一、线程的几种状态 New 新建状态 Runnable 运行状态 Blocked 阻塞状态(.sleep 抱着锁睡;.await 放开锁等待;) Waiting 等待(死等,不见不散) Timed_Waiting 等待(等一会儿,过时不候) Terminated 结束 二、创建线程的几种方式 继承Thread类 实现Runnable接口,实现run()方法(最简单,最常用) 示例:原创 2020-06-01 08:50:12 · 159 阅读 · 0 评论 -
ArrayList 全解
HashMap全解有了,Redis全解有了,今天来个简单的ArrayList全解!废话不多说,开问! ArrayList底层是什么? ArrayList底层就是一个Object类型的数组。 ArrayList初始容量? ArrayList 初始容量为0,第一次add之后扩容为10,类似懒加载。 ArrayList扩容机制,每次扩容多少? 每次扩容为当前容量的1.5倍。 扩容拷贝使用方法? 使用的是...原创 2020-04-30 16:03:57 · 314 阅读 · 0 评论