汇总了一下从10月份离职到12月份找工作被问到的面试题
数据库相关:
1、什么是回表?
在数据库中,尤其是在MySQL中,“回表”(table scan)是指当查询无法仅通过索引树(index tree)来获取所需的数据时,数据库需要回到原始的数据表(table)中去检索数据。这种情况通常发生在使用非聚簇索引(non-clustered index)进行查询时。
非聚簇索引的叶子节点通常只存储主键值,而不存储完整的行数据。因此,当用户执行查询时,如果查询条件包含非索引列(即索引列之外的列),数据库可能需要先通过索引找到对应的主键值,然后回到主表中获取完整的行数据。这个过程就是回表。
回表是一个相对耗时的操作,因为它涉及到额外的磁盘I/O。为了减少回表操作,数据库管理员可能会考虑创建包含所有需要查询的字段的覆盖索引(covering index),这样查询就可以直接从索引中获取到所需的数据,而不需要回表。
2、主键索引和索引区别?
3、MySQL的隔离级别有哪些?分别说说解决哪些问题?
4、说一下Mysql Innodb支持哪几种索引,底层结构?
5、Mysql如何看当前sql索引使用情况?sql前面加上 EXPLAIN 语句
6、写一个分页查询sql?
WHERE id = some_value ORDER BY id ASC LIMIT 100 OFFSET 10;
7、Spring写一个分页查询?
8、说一下mysql中的执行计划
9、哪些情况下会使索引失效?
设计模式相关:
1、说一下单例模式?懒汉式和饿汉式的区别?
2、说一下读写者模式
Redis相关:
1、说说哨兵模式
2、Redis有哪几种数据结构?
3、Redis设置过期时间的命令是什么?
4、Redis如何做数据持久化?
5、你在项目中如何使用的Redis?
6、如何用Redis做消息队列?
7、缓存击穿、穿透、雪崩?
Kafka相关:
1、你在项目中如何使用的kafka?
2、说说Kafka的topic、相关参数的作用
3、消费者是如何进行消费的?
Java相关:
1、数组、链表区别?
2、说一下HashMap?
3、手写一个二分查找代码?
4、说一下Java GC?
5、说一下类加载机制?
6、说一下JVM?
7、说一下线程实现有哪几种方法?
8、使用过线程池吗?线程池中几个核心参数分别是什么?作用是什么?
9、线程池和Executor的关系是什么?
10、说一下封装、继承、多态?
11、线程池中如果没有任务了后核心线程会被销毁吗?
12、知道Java反射吗?反射如何实现的?Spring中哪里用到了反射机制?
13、Java的几种基本类型与引用类型?在-128到127会出现什么现象?
14、Java基本数据类型有哪些,引用数据类型有哪些?为什么有了基本数据类型外还要有引用类型?
15、error和exception区别?运行时异常有哪些?
16、ArrayList是线程安全的吗?线程安全的List有哪些?
17、说一下JAVA内存模型
18、工作中用出现性能问题如何解决的?如何使用的jps、jstate这些工具?
19、说一下布隆过滤器?
20、让你实现一个事务要怎么设计?
Spring相关
1、使用Spring框架的好处?
2、说一下Bean的生命周期(太长,不想背,直接回答不会)
3、说一下Spring中如何开启事务?
4、spring和springboot有哪些区别?
5、spring核心注解有哪些?
项目相关
1、对方有反爬虫机制你是如何处理的?
Linux相关
1、查找文件中某个关键词的命令
2、统计一个文件中某个词出现的总次数用哪个命令?
Docker相关
1、Docker如何打通的内部网络与外部网络?
docker run --network host --name my-container my-image
docker run -p 8080:80 --name my-container my-image
其他:问项目