![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试考点
文章平均质量分 87
xzystart
这个作者很懒,什么都没留下…
展开
-
并发编程八股文
sleep()方法和wait()方法的区别和共同点?相同点:两者都可以暂停线程的执行,都会让线程进入等待状态不同点:sleep方法没有释放锁,wait方法释放了锁sleep方法属于 Thread 类的静态方法,作用于当前线程;而wait方法是Object类的实例方法,作用于对象本身执行sleep方法后,可以通过超时或interrupt方法唤醒休眠中的线程;执行wait方法后,只能通过notify或notifyAll方法唤醒等待线程线程安全有那些实现思路互斥同步synchroni原创 2022-03-22 11:42:28 · 163 阅读 · 0 评论 -
并发秒杀系统中超卖问题与重复下单问题的解决思路
什么是超卖问题问题原始描述:两用户查询某商品库存都是1,导致卖出2个商品,产生了超卖问题。超卖导致的原因:不同用户检查库存够用,然后并发下订单,减库存,由于检查库存和减少库存这两个操作不保证原子性,所以可能会出现本线程检查库存够用到实际减少库存操作之间,其他线程抢先扣除库存导致本线程扣除库存后库存出现负数,引发超卖。秒杀下单流程判断用户是否登陆,是否有收货地址等判断库存是否够用判断是否已经秒杀到了,防止重复下单减库存创建订单流程中可能会出现的问题超卖问题,由于步骤2与步骤4并不是原创 2022-02-07 22:25:09 · 5674 阅读 · 3 评论 -
MySQL面试整合
索引什么是索引?索引是一种数据结构,作用是帮助快速的对数据进行查找索引是什么样的数据结构?索引的数据结构与存储引擎的具体实现有关,MySQL中有Hash索引,B树索引,B+树索引等,InnoDB中使用的是B+树索引。为什么使用索引(索引的好处)?索引能大大加快检索速度,这是创建索引的主要原因、通过唯一索引能够保证数据表中的数据唯一性索引能够避免排序和临时表将随机IO转变为顺序IO为什么InnoDB建议使用自增的ID作为主键?首先InnoDB会默认为主键创建聚集索引(与其说是为主键创原创 2022-03-13 17:59:06 · 1096 阅读 · 0 评论 -
Spring面试整合
什么是Spring FrameworkSpring 是一个开源的应用框架,目的是降低程序开发的复杂度。具有的特点有:轻量级与低耦合,支持AOP与IOC它是分层的体系结构,能够运行用户选择组件,同时能够整合其他框架,如mybatis等SpringFramework特点轻量级:spring在代码量和透明度方面都很轻便非入侵式 : 基于Spring开发的应用程序可以不用依赖spring的APIIOC:控制反转,降低系统间耦合AOP:面向切面,能够将业务逻辑与系统服务分离,实现高内聚容器 :对象原创 2022-03-10 14:51:23 · 1438 阅读 · 1 评论 -
计算机网络八股文
浏览器输入一个网站后,具体发生了什么进行DNS解析操作,根据DNS解析结果查找到服务器IP地址通过IP寻址找到服务器,并利用三次握手建立TCP连接浏览器生成HTTP保温,发送HTTP请求,等待服务器响应服务器处理请求,返回服务器根据HTTP是否开启长链接,进行TCP挥手浏览器根据静态资源进行页面渲染了解REST API吗REST API全称为表述性转移状态,即,利用HTTP中的get、post、put、delete以及其他的HTTP方法构成REST请求中的数据资源增删改查的操作GET方原创 2022-03-09 11:41:47 · 2513 阅读 · 0 评论 -
并发编程八股文
sleep()方法和wait()方法的区别和共同点?相同点:两者都可以暂停线程的执行,都会让线程进入等待状态不同点:sleep方法没有释放锁,wait方法释放了锁sleep方法属于 Thread 类的静态方法,作用于当前线程;而wait方法是Object类的实例方法,作用于对象本身执行sleep方法后,可以通过超时或interrupt方法唤醒休眠中的线程;执行wait方法后,只能通过notify或notifyAll方法唤醒等待线程Thread.sleep(0)的作用是什么?由于J原创 2022-03-07 10:02:27 · 367 阅读 · 0 评论 -
JVM理论基础
类加载机制类加载的生命周期?**类加载过程包含了加载,验证,准备,解析,初始化五个阶段。**在这五个阶段中,加载验证准备和初始化这四个阶段发生的顺序是一定的,而解析阶段不一定,他在某些情况下可以在初始化后开始。加载:查找并加载类的二进制数据连接:2.1验证:确保被加载类的正确性(语义正确等)2.2准备:为类的静态变量分配内存,并将其初始化为默认值2.3解析:将类中的符号引用转为直接引用3.初始化:为类的静态变量赋予正确的初始值,JVM负责对类进行初始化,主要是对类的变量进行初始化Cl原创 2022-03-05 11:32:57 · 730 阅读 · 1 评论 -
举例说明一下消息队列的应用场景
消息队列是分布式系统中重要的组件,主要实现了:异步消息,应用解耦,流量控制等功能。应用场景1.异步处理以注册用户为例,假设用户注册需要发送注册邮件,发送短信及数据入库用户注册后 首先进行数据入库,入库后的两个操作通常有并行与串行两种执行方式1.串行:两个功能顺序执行,先发邮件后发短信,或先发短信后发邮件2.并行:发短信和发邮箱两个功能同时异步执行,以上三个任务完成后,返回给客户端。假设三个业务节点每个使用50毫秒钟,不考虑网络等其他开销,则串行方式的时间是150毫秒,并行的时原创 2022-03-02 23:59:42 · 1140 阅读 · 0 评论