java偏功能实现的面试题,教你如何做面霸( 九 )


mq在小公司应用的也比较少 , 但是强烈建议了解一下 , 如果不写一般也不会问 , 但是如果使用一定要在一定程度保证消息的准确性 , 如:防止长期占用一个队列 , 消息不消费的情况 。
7.3 redis redis的使用场景(>5)
使用自动过期策略存放token热点数据存放redis利用原子性自增计数器分布式锁
redis为什么比数据库快(>6)
一.纯内存操作二.单线程反而避免了多线程的频繁上下文切换问题
个基本数据类型(>6)
string,list,map,set,zset
redis雪崩 击穿 穿透(>8)雪崩 击穿 穿透的解决办法 (>9)
一 缓存雪崩:大量key同时失效 , 大量请求发送到db上 , 导致db宕机 。解决办法:设置key过期时间时 , 使用随机数二 缓存穿透:大量请求请求一个缓存中没有的key,这些请求直接怼到db上 , 造成宕机 。如发送为负数的入参时 。(一般为黑客侵入)解决办法:1.加入入参的验证 , 防止非法入参 。2.nginx加入拦截 , 防止同一个ip大量的请求 。3.使用布隆过滤器判断数据库是否存在 , 不存在直接返回 。三 缓存击穿:热点key突然失效 , 大量的请求怼到db,db宕机 。解决办法:1:设置热点缓存不过期2:加入互斥锁
redis 单线程还是多线程 为什么单线程还是这么快(>10)
一.纯内存操作二.核心是基于非阻塞的 IO 多路复用机制三.单线程反而避免了多线程的频繁上下文切换问题
描述一下redis的持久化(>10)
RDB:RDB做镜像全量持久化 , 将redis所有的数据以二进制保存 , RDB会耗费较长时间 , 不够实时 , 在停机的时候会导致大量丢失数据 。他是隔一段时间开启子线程 , 持久化这段时间的数据 。AOF:增量持久化 , 保存当前一秒或者当条指令 , 以文本保存
redis与数据库数据一致性如何解决(>12)
先删缓存 , 再更新数据库 , 然后采用双删一致
最常用中间件 , 建议必须掌握 。小公司使用的背景大多数是利用key过期时间保存token,或者利用redis原子性 , 计数使用 , 可能有少量从缓解数据库压力考虑 。所以后几道题目应用的很少 , 但是 , 这种常用中间价在面试前应该背一下的 。
7.4 mycat(简历有再问) 什么环境使用mycat(>5)分库分表的背景(>5)当前环境是否适合分库分表mycat原理(>7)分库分表后怎么关联查询 , 分页 , 排序(>8)
很少使用 , 楼主也没有过应用经验 , 但是简历有写还是会问的 。这里就不献丑提供经验了 。没必要死记硬背 。
八.代码规范 idea格式化代码的快捷键是什么(>5)
ctrl+alt+l
是否对自己编写的接口建立接口规范(>7)
建议了解阿里规范
是否对自己建立的表建立规范(>7)
建议了解阿里规范
是否对自己编写的代码树立规范(>7)(>7)
建议了解阿里规范
类和注释经常写吗 , 是怎么实现的(>7)
建议了解阿里规范
对于规范是否有插件或者自己的体系检查
建议了解阿里 p3c
使用什么接口文档 , 其中需要注意什么 。
对于我来说 , 一个良好的编写习惯是优秀程序猿必不可少的品质 , 无论在日常的编写还是以后作为或是管理者 , 是一定需要的 。否则怎么跟小弟装b , 这里我会重点问一下 , 可惜 , 达到要求的很少 。我感觉如果在面试过程中突出表现自己有这方面经验 , 会脱颖而出 。