目录
概念
基础源码
原理
底层
关系数据库
锁
非关系数据库
大数据
架构
Spring
网络
线程
运维Linux
分布式
集群
场景模拟
其他
相关面试指南
https://snailclimb.gitee.io/javaguide/#/
https://gitee.com/veal98/CS-Wiki/tree/master/docs
https://veal98.gitee.io/cs-wiki
🎉 用清晰的脉络总结 Java 和 AI 相关的知识点,便于构建完善的知识体系
概念
- 简单说一下面向对象的特征以及六大原则
- Java容器有哪些?哪些是同步容器,哪些是并发容器?
基础源码
- Java中==、equals与hashCode的区别和联系
- 谈谈Java容器ArrayList、LinkedList、HashMap、HashSet的理解,以及应用场景
- 谈谈final、finally、finalize的区别
- 谈谈线程的基本状态,其中的wait() sleep() yield()方法的区别。
- ArrayList和LinkedList的插入和访问的时间复杂度?
- HashMap在什么情况下会扩容,或者有哪些操作会导致扩容?
- HashMap push方法的执行过程?
- HashMap检测到hash冲突后,将元素插入在链表的末尾还是开头?
- ConcurrentHashMap和HashMap
原理
- Java反射原理, 注解原理?
- 注解的原理
底层
- JVM性能调优的监控工具了解那些?
- 简单谈谈JVM内存模型,以及volatile关键字
- 垃圾收集器与内存分配策略
- 垃圾收集算法
- 新生代分为几个区?使用什么算法进行垃圾回收?为什么使用这个算法?
- Java内存模型
- full gc怎么触发?
- gc算法
- JVM回收策略
- ClassLoader原理和应用
- 高吞吐量的话用哪种gc算法
关系数据库
- MySQL几种常用的存储引擎区别
- 数据库的隔离级别
- 查询中哪些情况不会使用索引?
- 数据库索引,底层是怎样实现的,为什么要用B树索引?
- Mysql主从同步的实现原理?
- MySQL是怎么用B+树?
- 数据库原理,数据库中间件,索引优化
锁
- 谈谈数据库乐观锁与悲观锁?
非关系数据库
- 有使用过哪些NoSQL数据库?MongoDB和Redis适用哪些场景?
- Redis和memcache有什么区别?Redis为什么比memcache有优势?
- 考虑redis的时候,有没有考虑容量?大概数据量会有多少?
大数据
- 5亿整数的大文件,怎么排?
- 1亿个手机号码,判断重复
架构
- 从项目的架构设计到部署流程。
Spring
- 请详细描述springmvc处理请求全流程?
- ioc原理、aop原理和应用
网络
- https和http区别,有没有用过其他安全传输手段?
线程
- 线程池的工作原理,几个重要参数,然后给了具体几个参数分析线程池会怎么做,最后问阻塞队列的作用是什么?
- 线程之间的交互方式有哪些?有没有线程交互的封装类 (join)?
- 说一说你使用的是什么样的线程池,自定义线程池的几个参数是什么
运维Linux
- Linux怎么查看系统负载情况?
分布式
- 谈谈分布式锁、以及分布式全局唯一ID的实现比较?
集群
- 集群监控的时候,重点需要关注哪些技术指标?这些指标如何优化?
场景模拟
- 两次点击,怎么防止重复下订单?
- 秒杀场景设计,应付突然的爆发流量
- 分布式数据一致性
- zk挂了怎么办?
- 布式锁的实现方式,zk实现和Redis实现的比较
MQ
- 消息队列原理介绍
其他
- 最近两年遇到的最大的挫折,从挫折中学到了什么?
- 最近有没有学习过新技术?
- 从千万的数据到亿级的数据,会面临哪些技术挑战?你的技术解决思路?
建议
多刷题
包括【Java核心知识】以及【算法刷题】
算法刷题LeetCode
看一些技术直播,在直播间交友;
加一些技术性的交流群,多交流问题;
参加一些线下活动,如面基、研讨会等等。