JAVA的5个经典面试问题
根据个人真实经历,整理5个区别于其他面试者的经典问题
1.谈下接口安全设计
答:接口安全设计考察的是面试者是否有设计理念,以及考虑问题全面性,接口是一套规范,项目中可用Token+盐+时间戳+登录验证的方式定义,推荐博文:https://www.cnblogs.com/yizhiamumu/p/9150462.html
2.用户在浏览器输入一个地址点击回车都发生了什么?
答:这个问题可以结合Http协议+Springmvc运行流程一起来简要回答,用户点击回车后,浏览器先查找本地缓存中是否存在映射地址,如果没有,路由到网络传输层,由网络七层协议由下到上传输,最终应用层的DNS策略(DNS同源是指,域名、协议、端口都相同)查找,由程序返回ModelandView对象,前端渲染后展现。
3.你如何应对千亿访问量的并发?
答:个人理解面对高并发业务,需从框架,业务设计,系统设计,数据库等多方面考虑,从框架角度来说需要做微服务+分布式处理,将每个业务总分总的下发处理,从业务设计上来说,做缓存+集群化+横向抽取+消息中间件,从数据库方面做读写分离+多服务对应自己的数据库+数据库中间件,代码层面由池化技术,以上为个人理解
4.Redis的数据类型?什么是缓存穿透?什么是缓存雪崩?如何解决?
答:此类问题考察了基础+实际解决方案,是redis相关的经典问题,首先说数据类型,还有分布式一致性问题已经单独写过
String 可做简单存储
List 可做消息存储,类似于消息队列
Set 可做去重,求差集,交集等
Hash 可存储映射关系
zSet 可做排行榜
缓存击穿:故意访问了一个不存在的key
解决:判断是否存在+互斥锁+更新策略
缓存雪崩:大数量key同一时间失效,造成访问数据库
解决:设置随机key的失效时间+判断是否失效+双缓存
5.谈下你对SpringBoot的理解?
答:内置了severlet容器,简化了大量xml配置,由@SpringApplication注解启动,定制了@Bean@Configuration,理念约定大于配置,一键启动,自带组件,与微服务框架延伸等
这几个问题从框架,设计,实战等多方面考察个人的能力,从而区别于他人,并且个人觉得还是要不断学习,不要局限于当下,且温故而知新。
今天购买了华为云服务器,将网站计划提上日程,将在年底做一个总结,检验年初的计划,指定明年年的新计划。且计划每周做一个网站小推进,慢慢的锻炼自己整体能力,希望一切如愿。
- 点赞
- 收藏
- 关注作者
评论(0)