面试
文章平均质量分 92
一个忧国忧民的程序员
这个作者很懒,什么都没留下…
展开
-
JavaWeb方向-面试汇总
JVM1. 垃圾回收算法标记-清除:标记已死对象,GC时直接清除。CMS回收器使用。 特点: 简单、速度快,但会留有内存空间碎片,空间碎片会导致后面的GC频率增加。 适合场景:只有小部分对象需要进行回收的,因为回收对象太多,其清除的时间就会越长。关注引用停顿时间,因为收集速度快,用户线程停顿的时间较短。标记-复制:将内存分为两块区域,标记已死对象,GC时将存活对象复制到另一块区域,清除已死对象。 特点:收集速度快,可以避免空间碎片,但是有空间浪费,存活对象较多的情况下会非常耗时,而原创 2020-11-28 22:15:18 · 271 阅读 · 0 评论 -
RabbitMQ总结
简介RabbitMQ是一个消息代理。它的工作就是接收和转发消息。你可以把它想像成一个邮局:你把信件放入邮箱,邮递员就会把信件投递到你的收件人处。在这个比喻中,RabbitMQ就扮演着邮箱、邮局以及邮递员的角色。RabbitMQ和邮局的主要区别在于,它处理纸张,而是接收、存储和发送消息(message)这种二进制数据。名词解释Produce:生产者,即消息的制造者Consume:消费者,即消息的使用者Queue:MQ中的队列,所以消息都会从队列中排队进出,先入先出Exchange:交换机,M原创 2020-11-11 17:31:52 · 112 阅读 · 0 评论 -
缓存之缓存击穿/穿透/雪崩
Redis高频面试题缓存穿透概念有一个查询接口,频繁接受到数据库中并不存在的查询条件,每次根据key查询缓存中都查不到,则这些查询请求纷纷落到数据库上,请求量大,造成数据库频繁IO最终宕机。例如接口是根据id获取用户,查询参数为-1、-2这种数据库根本没有的数据。解决方案1. 在Redis中缓存不存在的查询结果。每当接口被请求时,如果数据库返回为空,则依旧往Redis里根据查询的key写入缓存,这样下次再来同样的请求则可以直接走缓存取数据问题当频繁调用接口查数据这个操作是黑客在弄时,就会发现原创 2020-08-14 16:11:18 · 165 阅读 · 0 评论 -
HTTP1.0/1.1/2.0的区别
HTTP1.1与1.0的区别长连接1.0默认在HTTP请求响应结束后会关闭TCP通道,每个HTTP请求都要重复创建/销毁TCP通道的过程。1.1默认支持长连接,即创建一个TCP通道可以运输N个HTTP请求,通过request header 的Connection = keep alive来标识这是一个长连接,在响应回来后不销毁TCP通道,关Connection=close时,销毁通道。Host属性1.0的request header中并没有Host属性1.1后因为虚拟主机技术发达,一个IP可能原创 2020-08-11 19:17:01 · 150 阅读 · 0 评论 -
Mysql面试题总结
一. Mysql两种引擎的区别InnoDB支持行锁和表锁,默认为行锁行锁:在更新数据时锁住某条数据,性能差,并发效率高表锁:在更新数据时锁住整个表,性能好,并发效率低支持acid的事务操作,支持事务的四种隔离级别聚集索引,索引文件,主索引key存储主键值,value存储其它数据;辅索引key存储索引的值,value存储主键,使用索引查询数据时涉及到回表操作select count(*)会触发全表扫描操作MyIASM只支持表锁,写请求优先于读请求锁表不支持事务非聚集索引,索引存储数原创 2020-08-10 15:15:22 · 81 阅读 · 0 评论