java面试2

JavaWeb
Servlet的生命周期

加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求响应(服务阶段)—>销毁

Jsp和Servlet的区别
Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。

而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。

JSP侧重于视图,Servlet主要用于控制逻辑

Servlet更多的是类似于一个Controller,用来做控制。

Java框架进阶
SpringMVC的执行流程是怎样的?


@RequestMapping是怎么使用的?
在Controller类的方法下使用这个注解,作就是映射URL路径,将http的请求地址映射到控制器。

返回值交给视图解析器解析,如果配合@ResponseBody则返回JSON或者XML数据

SpringBoot如何使用事务?
使用@Transactional注解,可指定隔离等级、传播等级

Kafka是什么?
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

数据库
MySQL的隔离级别有哪些?

Isolate 隔离级别
*                          脏读                  不可重复读                    幻(虚)读
READ UNCOMMITTED           有                       有                         有
 (读未提交)
READ COMMITTED.            无                       有                         有
(读已提交)
REPEATABLE READ            无                       无                         有              
(可重复读)
SERIALIZABLE               无                       无                         无
(串行化 )


说说MySQL索引优化
MySQL里面是怎么排序的?
使用order by <关键字> asc/desc 默认asc

数据库三范式具体是什么?
第一范式:每个列都不可以再拆分。

第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。

第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。

Redis的数据类型有哪些?
Redis五种数据类型分别是string(字符串),hash(哈希),list(列表),set(集合)及sortset(有序集合

缓存雪崩有了解过吗?

缓存雪崩指的是由于大量缓存同时失效或者过期,导致大量请求直接落到了数据库或其他存储介质上,从而导致数据库负载骤增,甚至宕机的情况。

缓存雪崩一般发生在缓存服务器重启、大规模更新缓存、缓存设置了相同的过期时间等情况下。当缓存服务器重启或缓存失效后,大量请求会直接落到后端存储介质上,如果存储介质负载能力不足,就会导致存储介质宕机,甚至整个系统瘫痪。

为了避免缓存雪崩,可以采取以下措施:

  1. 缓存数据的过期时间设置随机,避免所有缓存同时失效,可以采用分布式锁机制来解决。

  2. 在系统架构设计时,考虑使用多级缓存,避免单点故障。

  3. 建立监控系统,实时监控缓存的命中率、缓存服务器的状态等,及时发现问题并解决。

  4. 对于重要的数据,可以采用主备缓存、冷备缓存等方式,确保数据可用性。

  5. 针对高峰期可以采取降级、限流等策略,减少请求对系统的影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值