面试真题
Docker相关面试真题
1:docker,打一个镜像包,从打包到上传过程,dockerfile了解过吗,排查docker日志。
2:有没有了解过docker在多台机部署情况下的网络问题,怎么处理?
回答:【线下版本】面试官,过去我只操作过单台机器的,借助于docker create network命令
【线上版本】啊面试官,这个问题我遇到过,大概是这样,用一个命令叫overlay(语速慢点懂得都懂)
3:docker熟悉吗?dockerfile呢
回答:从这几方面回答常见命令、dockerfile、dockercompose,项目部署(docker-compose up -d)
4:用docker还是k8s(kubernetes)
,K8S一般用在CI/CD场景
5:有独立部署过liux项目吗?
6:使用Docker部署项目是怎么进行部署的?前端有部署过吗?
7:基于docker进行搭建的吗?有没有写过docker compose文件
8:docker compose的理解
Redis相关面试真题
1.Redis数据类型和特性
string、list、set、zset、hash
多线程相关面试真题
用过多线程吗?创建线程有几种方式
注意要解释每一种的细节
(1)繼承Thread(死瑞得)
(2)实现Runnable
(3)实现Callable,有返回值
(4)线程池
线程池核心参数,工作原理
核心线程数:5
等待队列:10
最大线程数:20
Case1:第1个线程过来,会怎么样:核心
Case2:第6个过来会怎么样:等待
Case3:第16个来怎么样:临时线程
Case4:第30个:拒绝策略(直接抛异常,交给主线程执行或任意你能记住的常见两个)
怎么定义核心线程数:IO密集型、CPU密集型
MySql相关面试真题
mysql的索引你知道吗
(1)索引类型:主键、唯一、组合;又叫聚簇索引和非聚簇索引(二级索引、辅助索引);
(2)索引数据结构:Hash、B+Tree
索引失效的场景
(1)like的时候%写在前面
(2)in条件过多
(3)违背最左匹配原则
(4)数据过少,mysql的执行引擎会不用索引
有很多种不止这些
MYSG的优化器会优化,也会走
WHEREAANDBANDC
ABC走吗
[AC走吗
CBA走吗
A走吗
A走C不走
BC走吗一
越亮传奇
A走吗
C走吗
未知歌手
SSM框架面试真题
AOP的实现方式
(1)JDK:有接口
(2)CGLIB:普通类
.Srping的Bean生命周期
集合面试真题
HashMap 1.8数据结构
数组 + 链表/红黑树
hashmap的了解
- **数据结构**
- 1.7:数组+链表
- 1.8:数组+链表/红黑树
- 数组长度大于64,链表长度大于8
- **扩容机制**
- 负载因子:0.75
- 泊松分布
- 扩容:2N
- **源码流程**
- put
- get
- key-->hashcode-->int-->key得到value
- **线程安全**
- 不安全
- 要安全
- ConcurrentHashMap
- 1.7:分段锁:16个Segement
- 可以保证同时有16个并发,并且安全
- 1.8
- CAS思想
- SynUtils.HashMap
- HashTable
算法
选择排序
快排
//单例模式:饿汉式
public class Singleton1 {
//私有构造
private Singleton1(){}
//定义类变量,记录此类对象
private static Singleton1 instance = new Singleton1();
//定义类方法,返回此类唯一对象
public static Singleton1 getInstance(){
return instance;
}
}
//单例模式:懒汉
public class Singleton2 {
//私有构造
private Singleton2(){}
//定义类变量,记录此类对象
private static Singleton2 instance;
//定义类方法,返回此类唯一对象
public static Singleton2 getInstance(){
if(instance == null){
instance = new Singleton2();
}
return instance;
}
}
//双检锁
public class Singleton {
// 使用volatile关键字确保instance在多线程环境下的可见性
private static volatile Singleton instance;
// 私有构造方法,防止外部实例化
private Singleton() {
// 可以添加初始化代码
}
// 双检锁获取单例实例
public static Singleton getInstance() {
// 第一次检查:如果实例不存在才进入同步块,提高效率
if (instance == null) {
// 同步块,保证多线程环境下的线程安全
synchronized (Singleton.class) {
// 第二次检查:防止多个线程同时通过第一次检查后重复创建实例
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}