1、redis
数据类型
常使用的数据类型
如何使用的
什么场景使用的
为什么使用
key的删除策略
redis优势和缺点
redis持久化 RDB和AOF区别
redis丢失,如何回写
什么是缓存穿透?如何避免?什么是缓存雪崩?何如避免?
2、多线程
线程扭转:wait() sleep() yield() join()用法与区别
Java线程具有五中基本状态:新建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、死亡状态(Dead)
并发编程三要素:原子性、可见性、有序性
实现可见性的方法有哪些:synchronized和Lock
多线程的价值和优势
创建线程的有哪些方式以及优缺点和场景
常用线程池及优点
任务排队策略
锁
什么情况下会造成死锁
如何解决死锁
手写一个死锁
如何启动和停止一个线程
三个线程顺序打印ABC
3、jvm
100个线程,cpu报警如何调优
内存泄漏和内存溢出
oom解决
jvm垃圾回收器:重点讲下cms和G1、包括原理,流程,优缺点
什么情况下会发生栈内存溢出
思路: 描述栈定义,再描述为什么会溢出,再说明一下相关配置参数,OK的话可以给面试官手写是一个栈溢出的dem
JVM内存模型:程序计数器、java虚拟机、本地方法栈、java堆、方法区
JVM内存为什么要分成新生代,老年代,持久代。新生代中为什么要分为Eden和Survivor
思路: 先讲一下JAVA堆,新生代的划分,再谈谈它们之间的转化,相互之间一些参数的配置(如: –XX:NewRatio,–XX:SurvivorRatio等),再解释为什么要这样划分,最好加一点自己的理解
JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代
主内存,工作内存区别
说说你知道的几种主要的JVM参数
强引用、软引用、弱引用、虚引用的区别?
怎么打出线程栈信息。
如何判断一个对象是否存活
如何限制java程序的内存
参考链接:https://blog.csdn.net/qq_41701956/article/details/100074023
4、liunx
查看磁盘、内存
如何查看大量日志
查看java进程
top 命令及各参数意义
配置文件重启
nginx配置
shell传变量
shell常用语句:if、while、for等
请问当用户反馈网站访问慢,你会如何处理
如何排查 CPU load 过高问题
Linux 性能调优都有哪几种方法?
5、spring
什么是 Spring 框架
aop原理及实现原理
ioc作用
mvc实现原理
@RestController vs @Controller
spring 中两个bean相互依赖可以启动吗
bean:Spring框架中的单例bean不是线程安全的
@Autowired 和@Resource区别
@Component
@Repository
@Service
@Controller
6、SpringBoot
SpringBoot有哪些优缺点
Spring Boot、Spring MVC 和 Spring 有什么区别
说一下自动配置流程及原理
核心注解 :Spring Boot Starter
核心包以及包的作用
为什么需要spring-boot-maven-plugin
运行SpringBoot有几种方式:
打包用命令或者放到容器中运行
用Maven或Gradle插件运行
直接执行main方法运行
开启Spring Boot特性有哪几种方式
继承spring-boot-starter-parent项目
导入spring-boot-dependencies项目依赖
什么是Swagger?你用Spring Boot实现了吗?
Spring Boot中如何解决跨域问题?
什么是CSRF攻击?
SpringBoot 2.X有哪些新特性?
7、Springcloud
springCloud组件:eureka、ribbon、feign、hystrix、zuul
你常用的组件
主要对ribbon、feign组件展开了解原理和调度
eureka的注册原理、工作流程
spring cloud 服务之间调用
spring cloud怎么保证请求成功,返回失败,重试请求的重复问题
可以使用幂等性
zookeeper保证的cp
eureka保证ap
和dubbo区别
dubbo优缺点
8、Java高并发
多线程的几种实现方式
进程间如何通讯
同步和异步有何不同,在什么情况下分别使用它们?举例说明
什么是线程安全?
java中如何停止一个线程
一个线程运行时发生异常会怎样?
为什么wait、notify和notifyAll这些方法不再thread类里面
如何避免死锁?
参考链接: https://blog.csdn.net/weixin_41050155/article/details/88047556
9、mysql
隔离级别
事务
引擎
分库分表
innodb重点展开
drop和delete和truncate的区别
哪些操作可以回滚、
相似操作的对比效率
10、索引
为什么使用索引
索引种类、常用的有哪些
索引的优缺点
索引为什么有序的
B+树的底层以及为什么用B+树
其他的索引类型
b+树的序号为什么要连续性
11、数据结构
数据结构的堆和栈
队列的优缺点
队列的应用
二维数组旋转90度
链表反转
12、集合
hashMap底层原理
红黑树五个性质
hashMap如何扩容
ConcurrentHashMap 和 Hashtable的区别
arrayList和linkList区别:底层以及增删改的效率
map的key可以是基础类型的吗?不能,因为使用的是泛型,所以都要继承object类,所以基础类型要使用对应的封装类
list的泛型可以是基础类型吗?不能
13、大数据
sprak是什么以及工作原理、优势
MapReduce是什么以及工作原理、优势
hive是什么以及优势
选用hive的原因
yarn是什么及作用
spark和MapReduce的区别
mongodb分片
mongodb和mysql区别
选用mongodb的原因
spark作业运行流程及原理
项目背景 自己承担的角色 最后项目取得的成果 项目的进一步优化或复盘
一定要用比较精简的话来讲述项目,把自己的亮点凸现出来