2023
神州信息面试
一面(2023/6/21 )
1. list如何线程安全
- SynchronizedList
- CopyOnWriteArrayList
2. redis分布式事务
- 如multi()、exec()和discard()等,来做为事务开始和结束的标记
3.springboot实现分布式事务
- seata实现分布式事务
TCC TCC是Try、Confirm、Cancel三个词语的缩写,TCC要求每个分支事务实现三个操作:预处理Try、确认 Confirm、撤销Cancel。Try操作做业务检查及资源预留,Confirm做业务确认操作,Cancel实现一个与Try相反的 操作即回滚操作。 - 2PC -> 3PC
4.mysql索引不生效
1. 使用or操作符
2. 复合索引,未使用第一列
3. like %开头
4. 索引使用函数
5. 字符集不统一
6. 隐式类型转换
5.设计模式
- 工厂模式
- 简单工厂
- 工厂方法
- 抽象工厂
- 单例模式
懒汉
饿汉 - 生成器模式
- 原型模式
- 适配器模式
- 结构模式
二面(2023/6/23 )
因为是产品大佬面试的,主要问了项目等,技术基本不涉及。
中电金信面试
一面(2023-06-21)
1. springboot核心注解:@SpringBootApplication
是SpringBoot的最核心的注解,在SpringBoot的主类上,标识是SpringBoot应用,用来开启SpringBoot的各项能力。由@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan 三个注解组成。
这三个注解具体描述下
2. redis速度快的原因
1. 纯内存KV操作
2. 单线程操作
3. I/O 多路复用
4. Reactor 设计模式
3. redis可以持久化吗
redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File)
4. map 和 set 的区别:
5. vue 组件通讯
6. data()为什么是函数
7. 为什么要序列化:
-
1.用于网络传输对象
-
用于把对象保存在硬盘中
二面(2023-06-24)
1. redis 数据类型
1. string
2. hash
3. list
4. set
5. sort set (有序集合)
2.mysql 和 oracle 的区别
1. mysql一般默认用户创建多个数据库、oracle 一般一个数据库下创建多个数据库
2. 数据类型 mysql:int、datetime oracle:number、varchar2、date
3. 主键 mysql:可以使用自增 oracle:生成策略
4. 查询 mysql:limit分页 oracle: 伪劣的rownum 嵌套
5. 事务 mysql:默认开启 oracle:需要手动提交,需要写commit
3.mysql 和 oracle 的隔离级别
1. mysql
1. 读未提交
2. 读已提交
3. 可重复读 -**mysql默认级别**
4. 可串行化
2. oracle
1. READ COMMITTED :读已提交 -**oracle默认级别**
2. SERIALIZABLE:串行读取
Oracle默认隔离级别为:读已提交(READ COMMITTED)
4.sql慢查询怎么定位
- MySQL数据库不开启慢查询日志(slow query log),需要手动把它打开 SET GLOBAL slow_query_log = ‘ON’;
- 查看下慢查询日志配置 SHOW VARIABLES LIKE ‘slow_query_log%’
- **查看超过多少时间,才记录到慢查询日志 ** SHOW VARIABLES LIKE ‘long_query_time’