1.shiro把信息放在哪里了
答:存放在session中
2.什么场景用消息队列
消息队列在实际应用中包括如下四个场景:
应用耦合:多应用间通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败;
异步处理:多应用对消息队列中同一消息进行处理,应用间并发处理消息,相比串行处理,减少处理时间;
限流削峰:广泛应用于秒杀或抢购活动中,避免流量过大导致应用系统挂掉的情况;
消息驱动的系统:系统分为消息队列、消息生产者、消息消费者,生产者负责产生消息,消费者(可能有多个)负责对消息进行处理;
3.quartz的组件有哪些
Quartz 主要API
Scheduler 任务调度器,按照特定的触发规则,自动执行任务
Job 接口,定义需要执行的任务
JobDetail 包含job的基本信息
Trigger 描述Job执行的时间触发规则
JobStore 存放Job、Trigger等信息
5.数据库和redis双写一致性
6.redis数据类型。list和hash的特性 和java的list区别
7.redis持久化 redis线程模型
8.rabbitmq概念,怎么实现一对多和 延迟队列
9.docker容器查看部署项目的日志
在外部新建一个文件夹,挂载到容器内部生成日志的目录即可
10.对static的理解
11.反射怎么获取私有属性
12.项目使用过多线程吗
13.实现线程的几种方式
1.继承Thread类,重写run方法
2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target
3.通过Callable和FutureTask创建线程
4.通过线程池创建线程
14.线程池创建线程的过程。如果线程池被用空了怎么办 线程池有哪些设置。核心线程 最大线程 线程死锁
15.spring依赖注入的特性
16.spring的bean的作用域 , 事务管理 事务机制原理。如何帮我实现数据库事务的
17. 数据库事务失效情况。怎么解决
18.aop的理解 切入点有哪些
19.mysql常用数据引擎
20.mysql的sql优化
21.mysql怎么查每个品牌价格前三的商品
22.mysql索引结构了解吗。。悲观锁乐观锁
23.mybatis#和
区
别
、
什
么
时
候
用
区别、 什么时候用
区别、什么时候用
24.泛型extends和泛型super区别
泛型通配符extends与super的区别
<? extends T>限定参数类型的上界:参数类型必须是T或T的子类型 <? super T> 限定参数类型的下界:参数类型必须是T或T的超类型 总结为: <? extends T> 只能用于方法返回,告诉编译器此返参的类型的最小继承 边界为T,T和T的父类都能接收,但是入参类型无法确定,只能接受null的传入 <? super T>只能用于限定方法入参,告诉编译器入参只能是T或其子类型,而返参只能用Object类接收 ? 既不能用于入参也不能用于返参