摘要: 什么是索引? 排好序的快速查找的数据结构。 索引一般以索引文件的形式存储在磁盘上。 索引的优点和缺点 优点:大数据量的情况下,正确的使用索引提高查询性能。 缺点: 创建和维护索引需要消耗性能。数据量的增加而显著 索引也占据了一定的存储空间; 什么时候创建索引? 主键自动建立唯一索引。 经常需要查询的 阅读全文
posted @ 2021-11-17 18:08 lq-12040 阅读(32) 评论(0) 推荐(0)
摘要: 浏览器发送请求,被mvc中的前端控制器DispatchServlet拿到; DispatchServlet对请求URL解析,获得请求资源标识符URI,判断URI对应的映射是否存在,根据URI调用HandlerMapping将请求映射到处理器HandlerExcutionChain,获取Handler 阅读全文
posted @ 2021-11-17 17:50 lq-12040 阅读(30) 评论(0) 推荐(0)
摘要: 何为事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行。 何为 ACID 特性呢? 原子性(Atomicity) : 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性(Consistency): 执行事务前后,数据保持一致,例如转账业务中,无论事务 阅读全文
posted @ 2021-11-17 17:15 lq-12040 阅读(35) 评论(0) 推荐(0)
摘要: 锁的机制 MyISAM 采用表级锁(table-level locking)。 InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁 表级锁和行级锁对比: 表级锁:MySQL 中锁定 粒度最大 的一种锁,对当前操作的整张表加锁,实现简单,资源消耗也比较少,加锁快,不会 阅读全文
posted @ 2021-11-17 17:13 lq-12040 阅读(40) 评论(0) 推荐(0)
摘要: 微服务:微服务是一种架构风格, 一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 分布式:分布式是部署方式. 参考:https://www.cnblo 阅读全文
posted @ 2021-11-17 16:25 lq-12040 阅读(15) 评论(0) 推荐(0)
摘要: 轮询 加权 加权轮询 ip hash 随机 最小连接数 最短响应时间LRT 阅读全文
posted @ 2021-11-17 16:00 lq-12040 阅读(38) 评论(0) 推荐(0)
摘要: JUC 包中的原子类是哪 4 类? 基本类型 AtomicInteger:整形原子类 AtomicLong:长整型原子类 AtomicBoolean:布尔型原子类 数组类型 AtomicIntegerArray:整形数组原子类 AtomicLongArray:长整形数组原子类 AtomicRefer 阅读全文
posted @ 2021-11-17 15:59 lq-12040 阅读(35) 评论(0) 推荐(0)
摘要: 线程池的创建: FixedThreadPool : 该方法返回一个固定线程数量的线程池。该线程池中的线程数量始终不变。当有一个新的任务提交时,线程池中若有空闲线程,则立即执行。若没有,则新的任务会被暂存在一个任务队列中,待有线程空闲时,便处理在任务队列中的任务。 SingleThreadExecut 阅读全文
posted @ 2021-11-17 14:13 lq-12040 阅读(23) 评论(0) 推荐(0)
摘要: ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。 阅读全文
posted @ 2021-11-17 14:02 lq-12040 阅读(31) 评论(0) 推荐(0)
摘要: 重排序:jvm虚拟机允许在不影响代码最终结果的情况下,可以乱序执行。 内存屏障:可以阻挡编译器的优化,也可以阻挡处理器的优化 保证特定操作的执行顺序 保证某些变量的内存可见性 happens-before原则: 1:一个线程的A操作总是在B之前,那多线程的A操作肯定实在B之前。 2:monitor 阅读全文
posted @ 2021-11-17 13:52 lq-12040 阅读(65) 评论(0) 推荐(0)
摘要: volatile是一个轻量级的同步机制。不会阻塞线程。 保证可见性(被volatile关键字修饰的变量 一个线程修改后的值,所有线程都可见。) 不保证原子性(原子性:一个操作或者指令、事务,需要整体的执行成功,要么整体的失败。不能被分割。) 禁止指令重排(指令重排:单线程环境下确保最终执行结果和程序 阅读全文
posted @ 2021-11-17 13:49 lq-12040 阅读(50) 评论(0) 推荐(0)
摘要: 简单了解: 可重入锁,指的是自己可以再次获取自己的内部锁。 是 JDK 层面实现的(也就是 API 层面,需要 lock() 和 unlock() 方法配合 try/finally 语句块来完成) 底层原理 使用demo 与synchronized关键字的区别: 实现层面不同。 等待可中断 : Re 阅读全文
posted @ 2021-11-17 13:48 lq-12040 阅读(42) 评论(0) 推荐(0)
摘要: 简单了解: 对共享资源进行加锁,防止多线程出现并发安全问题。 jvm(操作系统)层面上实现的加锁,解锁。 底层原理实现: monitorenter指令,会尝试获取对象的锁,如果锁的计数器为 0 则表示锁可以被获取,获取后将锁计数器设为 1 也就是加 1。 monitorexit指令,将锁计数器设为 阅读全文
posted @ 2021-11-17 13:43 lq-12040 阅读(38) 评论(0) 推荐(0)
摘要: serial收集器 pernew收集器 parallel scavenge收集器 serial old收集器 parallel old 收集器 CMS收集器 G1收集器 ZGC收集器 阅读全文
posted @ 2021-11-17 13:37 lq-12040 阅读(20) 评论(0) 推荐(0)
摘要: 引用计数法 可达性分析算法 阅读全文
posted @ 2021-11-17 13:31 lq-12040 阅读(32) 评论(0) 推荐(0)
摘要: 垃圾回收算法: 标记-清除 标记-复制 标记-压缩 分代收集 阅读全文
posted @ 2021-11-17 13:31 lq-12040 阅读(24) 评论(0) 推荐(0)
摘要: 类加载检查 分配内存 初始化零值 设置对象头 执行init方法 阅读全文
posted @ 2021-11-17 13:11 lq-12040 阅读(20) 评论(0) 推荐(0)
摘要: 堆 方法区 java虚拟机栈 本地方法栈 pc计数器 阅读全文
posted @ 2021-11-17 13:09 lq-12040 阅读(24) 评论(0) 推荐(0)
摘要: 1 阅读全文
posted @ 2021-11-17 11:28 lq-12040 阅读(12) 评论(0) 推荐(0)
摘要: 1 阅读全文
posted @ 2021-11-17 11:17 lq-12040 阅读(23) 评论(0) 推荐(0)