个人八股文总结
文章平均质量分 87
自己把背过,遇到的八股文总结一下
旋风菠萝
我的每一篇文章都不会收费———包括以后
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
八股--SSM(2)
1.直接在Select语句中增加数据库提供的分页关键字,然后在应用程序中传递当前页和每页展示页数2.Mybatis中提供的RowBounds对象,实现内存级别分页3.基于Mybatis里面的Interceptor拦截器,在Select语句执行之前动态拼接关键字Mybatis 在处理 #{} 时,会创建预编译的 SQL 语句,将 SQL 中的 #{} 替换为 ? 号,在执行 SQL 时会为预编译 SQL 中的占位符(?)赋值,调用 PreparedStatement 的 set 方法来赋值,预编译的 SQL原创 2025-05-23 19:55:44 · 1223 阅读 · 0 评论 -
八股文--JVM(1)
直接内存:并不属于JVM的内存结构,不由JVM进行管理,是虚拟机的系统内存,常见与NIO操作时,用于数据缓冲区,他分配回收成本较高,但读写性能高。原创 2025-05-16 16:31:22 · 1330 阅读 · 0 评论 -
八股文---java集合重点
后面还在更新后面还在更新。原创 2025-05-15 09:44:48 · 292 阅读 · 0 评论 -
八股文---消息队列
例如,像 RabbitMQ 可以通过配置将消息持久化到磁盘,通过将队列和消息都设置为持久化的方式(设置durable = true),这样在服务器重启后,消息依然可以被重新读取和处理。例如,在第一次处理失败后,等待一段时间(如 5 秒)后进行第二次重试,如果重试多次(如 3 次)后仍然失败,可以将消息发送到死信队列,以便后续人工排查或者采取其他特殊处理。:消息队列生产者为每条消息生成唯一的消息 ID,消费者在处理消息前,先检查该消息 ID 是否已经处理过,如果已经处理过则丢弃该消息。原创 2025-05-15 09:43:05 · 820 阅读 · 0 评论 -
BitMap的使用(2)
最终,每一发子弹都会从备发射,这就像每一个bit位都会被遍历。原创 2025-04-07 16:41:37 · 461 阅读 · 0 评论 -
BitMap的使用(1)
当我们做项目的时候肯定遇到过签到功能吧,如果用平常数据库,假如一个用户1年签到100次,而网站有100万用户,就会产生1亿条记录。随着用户量增多、时间的推移,这张表中的数据只会越来越多,占用的空间也会越来越大。有没有什么办法能够减少签到的数据记录,减少空间占用呢?大家回忆一下,小时候上补习班时的签到卡:在这张小小的卡片上面,就记录了从一个月的第一天到最后一天的所有的签到情况。诶,你今天来上课了那就勾一下,没来就空着。这样呢,通过一个小小的卡片就能够记录一个同学这一个月的签到的情况了。原创 2025-04-07 16:09:37 · 1237 阅读 · 0 评论 -
八股文--JUC(2)
ReentrantLock翻译过来是可重入锁,相对于synchronized它具备以下特点:可中断(可以主动放弃)可以设置超时时间可以设置公平锁支持多个条件变量与synchronized一样,都支持重入。原创 2025-05-16 16:29:46 · 1287 阅读 · 0 评论 -
八股文---JUC(1)
这个是在偏向锁开启之后的锁的状态,如果还没有一个线程拿到这个锁的话,这个状态叫做匿名偏向,当一个线程拿到偏向锁的时候,下次想要竞争锁只需要拿线程ID跟MarkWord当中存储的线程ID进行比较,如果线程ID相同则直接获取锁(相当于锁偏向于这个线程),不需要进行CAS操作和将线程挂起的操作。:这是没有开启偏向锁的时候的状态,在JDK1.6之后偏向锁的默认开启的,但是有一个偏向延迟,需要在JVM启动之后的多少秒之后才能开启,这个可以通过JVM参数进行设置,同时是否开启偏向锁也可以通过JVM参数设置。原创 2025-05-15 09:41:09 · 1069 阅读 · 0 评论 -
八股文---框架SSM(1)
AOP称为面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。记录操作日志缓存处理Spring中内置的事务处理回答面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用,降低耦合。原创 2025-04-22 18:22:29 · 754 阅读 · 0 评论 -
八股文---Redis(2)
回答:单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。一般都是一主多从,主节点负责写数据,从节点负责读数据3.1.2.能说一下,主从同步数据的流程回答1.从节点请求主节点同步数据(replication id、 offset )2.主节点判断是否是第一次请求,是第一次就与从节点同步版本信息(replication id和offset)3.主节点执行bgsave,生成rdb文件后,发送给从节点去执行。原创 2025-04-21 19:17:57 · 1244 阅读 · 0 评论 -
Redis分布式锁(2)
小总结:利用set nx ex获取锁,并设置过期时间,保存线程标示释放锁时先判断线程标示是否与自己一致,一致则删除锁特性:利用set nx满足互斥性利用set ex保证故障时锁依然能释放,避免死锁,提高安全性利用Redis集群保证高可用和高并发特性我们一路走来,利用添加过期时间,防止死锁问题的发生,但是有了过期时间之后,可能出现误删别人锁的问题,这个问题我们开始是利用删之前 通过拿锁,比锁,删锁这个逻辑来解决的,也就是删之前判断一下当前这把锁是否是属于自己的,但是现在还有原子性问题。原创 2025-03-28 21:12:59 · 1142 阅读 · 0 评论 -
Redis分布式锁(1)
我们利用redis 的setNx 方法,当有多个线程进入时,我们就利用该方法,第一个线程进入时,redis 中就有这个key 了,返回了1,如果结果是1,则表示他抢到了锁,那么他去执行业务,然后再删除锁,退出锁逻辑,没有抢到锁的哥们,等待一定时间后重试即可。Mysql:mysql本身就带有锁机制,但是由于mysql性能本身一般,所以采用分布式锁的情况下,其实使用mysql作为分布式锁比较少见。只要大家使用的是同一把锁,那么我们就能锁住线程,不让线程进行,让程序串行执行,这就是分布式锁的核心思路。原创 2025-03-28 20:53:58 · 314 阅读 · 0 评论 -
八股文---Redis(1)
允许延时一致的业务。原创 2025-04-19 22:19:58 · 1696 阅读 · 0 评论 -
Redis中缓存更新,缓存穿透,缓存雪崩,缓存击穿
假设现在线程1过来访问,他查询缓存没有命中,但是此时他获得到了锁的资源,那么线程1就会一个人去执行逻辑,假设现在线程2过来,线程2在执行过程中,并没有获得到锁,那么线程2就可以进行到休眠,直到线程1把锁释放后,线程2获得到锁,然后再来执行逻辑,此时就能够从缓存中拿到数据了。,直到新开的线程完成这个逻辑后,才释放锁, 而线程1直接进行返回,假设现在线程3过来访问,由于线程线程2持有着锁,所以线程3无法获得锁,线程3也直接返回数据,只有等到新开的线程2把重建数据构建完后,其他线程才能走返回正确的数据。原创 2025-03-27 14:43:52 · 1329 阅读 · 0 评论 -
八股文---MySQl(3)
微服务一般用的多。原创 2025-04-17 15:12:28 · 1405 阅读 · 0 评论 -
八股文---MySQl(2)
索引是帮助MySQL高效获取数据的数据结构(有序)。原创 2025-04-16 17:15:04 · 1272 阅读 · 0 评论 -
八股文---MySQL(1)
聚合查询多表查询表数据量过大查询深度分页查询表象:页面加载过慢、接口压测响应时间过长(超过1s)原创 2025-04-16 15:44:41 · 331 阅读 · 0 评论
分享