JAVA的经典面试问题有哪些
本篇内容介绍了"JAVA的经典面试问题有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
1.谈下接口安全设计
答:接口安全设计考察的是面试者是否有设计理念,以及考虑问题全面性,接口是一套规范,项目中可用Token+盐+时间戳+登录验证的方式定义
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,理念约定大于配置,一键启动,自带组件,与微服务框架延伸等
"JAVA的经典面试问题有哪些"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!