前言
人人都想进大厂, 基础很重要 , 要好好打磨 , 然后进阶部分理论加实践一起 , 方可事半功倍。很多 Java 开发者面试之前 , 可能没有较长的工作时间或者较为丰富的工作经验 , 所以不知道互联网公司或者一线互联网公司技术面试都会问哪些问题 ? 再加上可能自己准备也不充分 , 去面试没几个回合就被面试官几个问题打蒙了 , 最后以惨败收场。(这里收集了一些同行程序员的大厂面试过程及总结予以参考 )
五⾯阿⾥, 终获 offer
⼀⾯(技术⾯)
1. ⾃我介绍 ( 主要讲⾃⼰会的技术细节 , 项⽬经验 , 经历那些就⼀语带过 , 后⾯⾯试官会问你 的 )。2. 聊聊项⽬ ( 就是⼀个很普通的分布式商城 , ⾃⼰做了⼀些改进 ), 让我画了整个项⽬的架构图 , 然后针对项⽬抛了⼀系列的提⾼性能的问题 , 还问了我做项⽬的过程中遇到了那些问题 , 如何解 决的 , 差不读就这些吧。3. 可能是我前⾯说了我会数据库优化 , 然后⾯试官就开始问索引、事务隔离级别、悲观锁和乐观 锁、索引、ACID、MVVC 这些问题。4. 浏览器输⼊ URL 发⽣了什么? TCP 和 UDP 区别? TCP 如何保证传输可靠性? 5. 讲下跳表怎么实现的? 哈夫曼编码是怎么回事 ? ⾮递归且不⽤额外空间 ( 不⽤栈 ), 如何遍历⼆ 叉树 6. 后⾯⼜问了很多 JVM ⽅⾯的问题 , ⽐如 Java 内存模型、常⻅的垃圾回收器、双亲委派模型这些 7. 你有什么问题要问吗 ?
⼆⾯(技术⾯)
1. ⾃我介绍 ( 主要讲⾃⼰会的技术细节 , 项⽬经验 , 经历那些就⼀语带过 , 后⾯⾯试官会问你 的 )。2. 操作系统的内存管理机制 3. 进程和线程的区别 4. 说下你对线程安全的理解 5. volatile 有什么作⽤ ,sychronized 和 lock 有什么区别 6. ReentrantLock 实现原理 7. ⽤过 CountDownLatch 么 ? 什么场景下⽤的 ? 8. AQS 底层原理。9. 造成死锁的原因有哪些 , 如何预防 ? 10. 加锁会带来哪些性能问题。如何解决 ? 11. HashMap、ConcurrentHashMap 源码。HashMap 是线程安全的吗 ?Hashtable 呢 ? ConcurrentHashMap 有了解吗 ? 12. 是否可以实习 ? 13. 你有什么问题要问吗 ?
三⾯(技术⾯)
1. 有没有参加过 ACM 或者他竞赛 , 有没有拿过什么奖 ?( 我说我没参加过 ACM, 本科参加过数学 建模竞赛 , 名次并不好 , 没拿过什么奖。⾯试官好像有点失望 , 然后我⼜赶紧补充说我和⽼师⼀ 起做过⼀个项⽬ , ⽬前已经投⼊使⽤。⾯试官还⽐感兴趣 , 后⾯⼜和他聊了⼀下这个项⽬。) 2. 研究⽣期间 , 做过什么项⽬ , 发过论⽂吗 ? 有什么成果吗 ? 3. 你觉得你有什么优点和缺点 ? 你觉得你相⽐于那些⽐你更优秀的⼈⽋缺什么 ? 4. 有读过什么源码吗 ?( 我说我读过 Java 集合框架和 Netty 的 , ⾯试官说 Java 集合前⼏⾯⼀ 定问的差不多 , 就不问了 , 然后就问我 Netty 的 , 我当时很慌啊 !) 5. 介绍⼀下⾃⼰对 Netty 的认识 , 为什么要⽤。说说业务中 ,Netty 的使⽤场景。什么是 TCP 粘 包 / 拆包, 解决办法。Netty 线程模型。Dubbo 在使⽤ Netty 作为⽹络通讯时候是如何避免粘包与 半包问题 ? 讲讲 Netty 的零拷⻉ ? 巴拉巴拉问了好多 , 我记得有好⼏个我都没回答上来 , ⼼⾥想 着凉凉了啊。6. ⽤到了那些开源技术、在开源领域做过贡献吗 ? 7. 常⻅的排序算法及其复杂度 , 现场写了快排。8. 红⿊树 ,B 树的⼀些问题。9. 讲讲算法及数据结构在实习项⽬中的⽤处。10. ⾃⼰的未来规划 ( 就简单描述了⼀下⾃⼰未来的设想啊 , 说的还挺诚恳 , ⾯试官好像还挺满意 的 ) 11. 你有什么问题要问吗 ?
四⾯(半个技术⾯)
三⾯⾯完当天 , 晚上 9 点接到⾯试电话 , 感觉像是部⻔或者项⽬主管。这个和之前的⾯试不⼤相同 , 感觉⾯试官主要考察的是你解决问题的能⼒、学习能⼒和团队协作能⼒。 1. 让我讲⼀个⾃⼰觉得最不错的项⽬。然后就巴拉巴拉的聊 , 我记得主要是问了项⽬是如何进⾏协 作的、遇到问题是如何解决的、与他⼈发⽣冲突是如何解决的这些。感觉聊了挺久。2. 出现 OOM 后你会怎么排查问题 ? 3. ⾃⼰平时是如何学习新技术的 ? 除了 Java 还回去了解其他技术吗? 4. 上⼀段实习经历的收获。5. NginX 如何做负载均衡、常⻅的负载均衡算法有哪些、⼀致性哈希的⼀致性是什么意思、⼀致性 哈希是如何做哈希的 6. 你有什么问题问我吗 ? 7. 还有⼀些其他的 , 想不起来了 , 感觉这⼀⾯不是偏向技术来问。
五⾯(HR ⾯)
1. ⾃我介绍 ( 主要讲能突出⾃⼰的经历 , 会的编程技术⼀语带过 )。2. 你觉得你有什么优点和缺点 ? 如何克服这些缺点 ? 3. 说⼀件⼤学⾥你⾃⼰⽐有成就感的⼀件事情 , 为此付出了那些努⼒。4. 你前⾯跟其他⾯试官讲过⼀些你做的项⽬吧 ? 可以给我讲讲吗 ? 你要考虑到我不是⼀个做技术的 ⼈ , 怎么让我也听得懂。项⽬中有什么问题 , 你怎么解决的 ? 你最⼤的收获是什么 ? 5. 你⽬前有⾯试过其他公司吗 ? 如果让你选 , 这些公司和阿⾥ , 你选哪个 ?( 送分题 , 回答不好可 能送命 ) 6. 你期望的⼯作地点是哪⾥ ? 7. 你有什么问题吗 ?
小结
1. 可以看出⾯试官问的很多问题都是比较常⻅的问题 , 所以记得⼀定要提前准备 , 还要深⼊准 备 , 不要回答的太⽪⽑。很多时候⼀个问题可能会牵扯出很多问题 , 遇到不会的问题不要慌 , 冷 静分析 , 如果你真的回答不上来 , 也不要担⼼⾃⼰是不是就要挂了 , 很可能这个问题本身就比较 难。2. 表达能⼒和沟通能⼒太重要了 , ⼀定要提前练⼀下 , 我⾃身就是⼀个不太会说话的⼈ , 所以 , ⾯ 试前我对于⾃我介绍、项⽬介绍和⼀些常⻅问题都在脑⼦⾥练了好久 , 确保⾯试的时候能够很清 晰和简洁的说出来。3. 等待⾯试的过程和⾯试的过程真的好熬⼈ , 那段时间我压⼒也⽐⼤ , 好在我私下找到学⻓聊了 很多 , ⼼情也好了很多。4. ⾯试之后及时总结 , ⾯的好的话 , 不要得意 , 尽快准备下⼀场⾯试吧 !
面试阶段不管遇到什么情况 , 尽可能保持心态好 , 现在大环境不好 , 很多公司招人的标准其实或多或少在变得更高 , 有可能你费尽心思准备了很久 , 但面试的过程和结果还是不尽人意 , 这也是正常的 , 毕竟是大厂嘛 , 要是那么好进就不会那么多人心向往之了。由于篇幅太大更多技术栈的面试题在这就不多做展示了 , 如需原文档参考 ………………………
拼多多 ( 三面 )
一面
- 简短自我介绍
- 事务的 ACID, 其中把事务的隔离性详细解释一遍
- 脏读、幻影读、不可重复读
- 红黑树、二叉树的算法
- 平常用到哪些集合类 ?ArrayList 和 LinkedList 区别 ?HashMap 内部数据结构 ?ConcurrentHashMap 分段锁 ?
- jdk1.8 中 , 对 hashMap 和 concurrentHashMap 做了哪些优化
- 如何解决 hash 冲突的 , 以及如果冲突了 , 怎么在 hash 表中找到目标值
- synchronized 和 ReentranLock 的区别 ?
- ThreadLocal? 应用场景 ?
- Java GC 机制 ?GC Roots 有哪些 ?
- MySQL 行锁是否会有死锁的情况 ?
二面
- 乐观锁和悲观锁了解吗 ?JDK 中涉及到乐观锁和悲观锁的内容 ?
- Nginx 负载均衡策略 ?
- Nginx 和其他负载均衡框架对比过吗 ?
- Redis 是单线程 ?
- Redis 高并发快的原因 ?
- 如何利用 Redis 处理热点数据
- 谈谈 Redis 哨兵、复制、集群
- 工作中技术优化过哪些 ?JVM、MySQL、代码等都谈谈
三面
- Spring Cloud 用到什么东西 ? 如何实现负载均衡 ? 服务挂了注册中心怎么判断 ?
- 网络编程 nio 和 netty 相关 ,netty 的线程模型 , 零拷贝实现
- 分布式锁的实现你知道的有哪些 ? 具体详细谈一种实现方式
- 高并发的应用场景 , 技术需要涉及到哪些 ? 怎样来架构设计 ?
- 接着高并发的问题 , 谈到了秒杀等的技术应用 :kafka、redis、mycat 等
- 最后谈谈你参与过的项目 , 技术含量比较高的 , 相关的架构设计以及你负责哪些核心编码
抖音
一面(50 分钟)
- hashmap, 怎么扩容 , 怎么处理数据冲突 ? 怎么高效率的实现数据迁移 ?
- Linux 的共享内存如何实现 , 大概说了一下。
- socket 网络编程 , 说一下 TCP 的三次握手和四次挥手
- 同步 IO 和异步 IO 的区别 ?
- Java GC 机制 ?GC Roots 有哪些 ?
- 红黑树讲一下 , 五个特性 , 插入删除操作, 时间复杂度 ?
- 快排的时间复杂度 , 最坏情况呢 , 最好情况呢 , 堆排序的时间复杂度呢 , 建堆的复杂度是多少
二面(40 分钟 )
- 自我介绍 , 主要讲讲做了什么和擅长什么
- 设计模式了解哪些 ?
- AtomicInteger 怎么实现原子修改的 ?
- ConcurrentHashMap 在 Java7 和 Java8 中的区别 ? 为什么 Java8 并发效率更好 ? 什么情况下用 HashMap, 什么情况用 ConcurrentHashMap?
- redis 数据结构 ?
- redis 数据淘汰机制 ?
三面 ( 约 1 个小时 )
- mysql 实现事务的原理(MVCC)
- MySQL 数据主从同步是如何实现的 ?
- MySQL 索引的实现 ,innodb 的索引 ,b+ 树索引是怎么实现的 , 为什么用 b+ 树做索引节点 , 一个节点存了多少数据 , 怎么规定大小 , 与磁盘页对应。
- 如果 Redis 有 1 亿个 key, 使用 keys 命令是否会影响线上服务 ?
- Redis 的持久化方式 ,aod 和 rdb, 具体怎么实现 , 追加日志和备份文件 , 底层实现原理的话知道么?
- 遇到最大困难是什么 ? 怎么克服 ?
- 未来的规划是什么 ?
- 你想问我什么 ?
天猫 ( 四面 )
一面
- 常见集合类的区别和适用场景
- 并发容器了解哪些 ?
- 如何判断链表是否有环
- concurrentHashMap 如何实现
- 集群服务器 如何 application 共享
- JAVA 网络编程中 :BIO、NIO、AIO 的区别和联系
- jvm 内存模型 jmm 知道的全讲讲
- JAVA 的垃圾回收 , 标记算法和复制算法的区别 , 用在什么场合 ?
- http 和 https 的区别 ,http1.x 和 http2.0 的区别 ,SSL 和 TSL 之间的区别
- GC、G1 和 ZGC 的区别
- B+ 树和 B 树的区别 , 和红黑树的区别
- 内存泄漏与内存溢出的区别
- session 的生命周期是多久
- 关于 Mina 框架了解多少 ?( 因为我在项目里用到了 Mina, 所以提到了这个部分 )
二面
- java cas 原理
- JAVA 线程池有哪些参数 , 如果自己设计一个线程池要考虑哪些问题 ?
- Java 的 lock 的底层实现 ?
- mysql 数据库默认存储引擎 , 有什么优点
- MySQL 的事务隔离级别 , 分别解决什么问题。
- 四个表 记录成绩 , 每个大约十万条记录 , 如何找到成绩最好的同学
- 常见的负载均衡算法有哪些
- 如果 Redis 有 1 亿个 key, 使用 keys 命令是否会影响线上服务
- Redis 的持久化方式 ,aod 和 rdb, 具体怎么实现 , 追加日志和备份文件 , 底层实现原理的话知道么
三面
- 请画一个完整大型网站的分布式服务器集群部署图
- 多个 RPC 请求进来 , 服务器怎么处理并发呢
- 讲一下 Redis 的哨兵机制
- 数据库分库分表一般数据量多大才需要 ?
- 如何保证数据库与 redis 缓存一致的
- 项目中消息队列怎么用的 ? 使用哪些具体业务场景 ?
- JVM 相关的分析工具有使用过哪些 ? 具体的性能调优步骤吗 ?
- MySQL 的慢 sql 优化一般如何来做 ? 除此外还有什么方法优化 ?
- 线上的服务器监控指标 , 你认为哪些指标是最需要关注的 ? 为什么 ?
- 如何做压测 , 抗压手段
- 秒杀模块怎么设计的
HR 面
- 自我介绍
- 你怎么评价你之前的 3 轮面试
- 你怎么看待你自己 , 你最大的核心竞争力是什么
- 未来自己的职业规划
- 对阿里技术氛围有什么样的理解 , 用过哪些阿里的开源库
- 期望的薪资是多少
- 最后 , 你有什么想了解的
SHEIN ⾯经分享
SHEIN 是⼀家成⽴于 2008 年的快时尚出⼝跨境电商互联⽹公司 , 集商品设计、仓储供应链、互联⽹研发以及线上运营于⼀体。
⼀⾯(45min 左右)
1. ⾃我介绍 2. 详细的聊了 TCP 三次握⼿四次挥⼿ , 以及各个环节可能会出现的相关问题。3. 有没有做过 MySQL 调优 ,MySQL 的⼀些优化⽅法 , 还问到了 MySQL 选错索引的问题 , 整条 MySQL 执⾏ 会经过哪些过程。4. HashMap 和 ConcurrentHashMap 1.7 和 1.8 的变化。hash 扩容为什么要扩⼤两倍 , 扩⼤ 3 倍为什么不 ⾏。5. 本地缓存 GuavaCache 和 Redis 的区别 , 为什么项⽬中采⽤了多级缓存的设计 6. 介绍常⻅的设计模式(这⼀块 , 我觉得结合 jdk 或者 spring 相关源码 , 或者⾃⼰的项⽬使⽤的设计 模式聊⽐好) 7. 为什么要使⽤ SpringBoot, 他能带来哪些好处。8. 线程池你在项⽬中怎么使⽤的 , 线程池内部原理的流程是什么样的。9. 阻塞队列有没有看过底层是怎么实现的 10. synchronize 和 ReentrantLock 的区别 , 需要先介绍各⾃的底层实现。11. 有没有什么想问他的。
⼆⾯ (1h 左右 )
⼆⾯问了挺久 , 总共⼀个半⼩时 , 基本围绕着简历来问 , 1. 问了⼀些 Java 基础 ,HashMap,HashSet, 重写了 hashCode ⽅法需不需要重写 equal ⽅法 , 如何解决 哈希冲突的等等. 2. B+ 树 ,InnoDB 与 MyIsam 的区别 , 还问了事务隔离级别读提交与可重复读的的⼀些区别. 3. 接下来⼜问了 Java 并发知识点 ,Synchronized 与 ReentrantLock 区别 , 可⻅性的问题 ,CAS, 问到 Unsafe 是什么, 原⼦类等等. 4. JVM 问的⽐多 , 程序计数器的作⽤ , 虚拟机栈⾥⾯的栈帧存放着什么 , 本地⽅法栈⼜是⼲什么 ⽤的 , 新⽣代与⽼年代 , 垃圾回收算法 , 垃圾收集器等等问题。5. Spring 问了 IOC 和 AOP, 这⼀块问的相对少. 6. 问了很多基础之后才开始问项⽬ , 项⽬从第⼀个开始问 , 问的很细 , 难点在哪 , 怎么解决 , 点赞 后站内信的通知异步是怎么实现的等等 , 问完第⼀个项⽬接着问第⼆个项⽬。7. 问了 netty 如何使⽤的,nio 相关问题 , 最后问到 Linux 的 io ,select,epoll 这些。8. HashMap 存储了 50w 的数据 , 给出最快速给遍历⽅法 9. 有没有什么想问他的。
三⾯、四面(CTO 面)( 三面四面都比较短 )
三⾯问的技术问题就相对少了 , 主要问了跳表 ,Java 并发的知识点 ,Linux 的基础命令 ,Git 的常规问题 ,JVM 的回收算法介绍了下 , 还问了让我来介绍 Git 给不懂 Git 的⼈听 , 你会怎么跟他介绍。⼤概就随便和我聊了下 , 为什么想来南京 , 有没有参加秋招 , 本科期间代码量怎么样 , 我当时都还没开始聊起来 , 他就说⼤概就这些了。感觉有点虚 , 毕竟问的时间那么短 , 当时我还问了之前认识的⼀个⽼哥 , 他也⾯了 CTO ⾯ , 他也是 5 分钟左右 , 总体感觉 CTO 挺幽默的。
五⾯ HR ⾯
主要介绍了公司的情况 , 薪酬待遇 , 问能不能提前去实习等等⼀些问题。总体感觉 shein 的⾯试效率还是很⾼的 , 基本⼀天⼀⾯。HR 的态度⾮常好 , 中间由于⼀些事情耽误 , 还鸽了⼀次技术⾯试 ,HR 根据我的时间以及⾯试官的时间帮我额外安排了⼀次⾯试。对这家公司的映像⾮常好。(由于篇幅太大剩下的大厂面经在这就不多做展示了 , 如需原文档参考学习戳戳 我的大厂面经 即可 )
很多 Java 开发者面试之前 , 可能没有较长的工作时间或者较为丰富的工作经验 , 所以不知道互联网公司或者一线互联网公司技术面试都会问哪些问题 ? 再加上可能自己准备也不充分 , 去面试没几个回合就被面试官几个问题打蒙了 , 最后以惨败收场。所以 , 希望准备⾯试的⼩伙伴 , 还是要准备扎实的基础 , 不要靠直接背诵⾯试题这种⽅式来应付⾯试 , ⽅能以不变应万变。( 总结的互联网各大厂 Java 岗的高频面试真题及解析 : 包括不限于 Java 集合、JVM、并发与多线程、Spring、MyBaits、微服务、Dubbo、Kakfa、中间件、Redis、数据库 , 设计模式 )
以往大厂面试真题及解析
面试阶段不管遇到什么情况 , 尽可能保持心态好 , 现在大环境不好 , 很多公司招人的标准其实或多或少在变得更高 , 有可能你费尽心思准备了很久 , 但面试的过程和结果还是不尽人意 , 这也是正常的 , 毕竟是大厂嘛 , 要是那么好进就不会那么多人心向往之了。由于篇幅太大更多技术栈的面试题在这就不多做展示了 , 如需原文档参考 ………………………… …………. 我的 Java 面试题笔记 ……………………..…………….
面试攻略
- 为什么说简历很重要 ?
- 先从面试来说
- 再从面试说起
- 必知必会的几点
- 必须了解的两大法则
- 项目经历怎么写
- 专业技能怎么写
- 排版注意事项
- 其他一些小 tips
- 你对我们公司有什么想问的吗 ?
- 很多人都倒在自我介绍上
- 如何与 HR 交谈 , 如何谈薪水
- HR 最喜欢问程序员的 20 个问题
- 面试中的礼仪与举止
- ……
Java 基础面试题及解析
- ⾯向对象和⾯向过程的区别
- Java 语⾔有哪些特点?
- 关于 JVM JDK 和 JRE 最详细通俗的解答
- Oracle JDK 和 OpenJDK 的对⽐
- Java 和 C++ 的区别?
- 什么是 Java 程序的主类 应⽤程序和⼩程序的主类有何不同?
- Java 应⽤程序与⼩程序之间有哪些差别?
- 字符型常量和字符串常量的区别?
- 构造器 Constructor 是否可被 override?
- 重载和重写的区别重载重写
- Java ⾯向对象编程三⼤特性: 封装 继承 多态封装继承多态
- String StringBuffer 和 StringBuilder 的区别是什么? String 为什么是不可变的?
- ⾃动装箱与拆箱
- 在⼀个静态⽅法内调⽤⼀个⾮静态成员为什么是⾮法的?
- 在 Java 中定义⼀个不做事且没有参数的构造⽅法的作⽤
- import java 和 javax 有什么区别 ?
- 接⼝和抽象类的区别是什么 ?
- 成员变量与局部变量的区别有哪些 ?
- 创建⼀个对象⽤什么运算符? 对象实体与对象引⽤有何不同?
- 什么是⽅法的返回值? 返回值在类的⽅法⾥的作⽤是什么?
- ……
多线程面试题及解析
- 在 java 中守护线程和本地线程区别 ?
- 线程与进程的区别 ?
- 什么是多线程中的上下文切换 ?
- 死锁与活锁的区别 , 死锁与饥饿的区别 ?
- Java 中用到的线程调度算法是什么 ?
- 什么是线程组 , 为什么在 Java 中不推荐使用 ?
- 为什么使用 Executor 框架 ?
- 在 Java 中 Executor 和 Executors 的区别 ?
- 如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长 ?
- 什么是原子操作 ? 在 JavaConcurrencyAPI 中有哪些原子类(atomicclasses)?
- JavaConcurrencyAPI 中的 Lock 接口 (Lockinterface) 是什么 ? 对比同步它有什么优势 ?
- 什么是 Executors 框架 ?
- 什么是阻塞队列 ? 阻塞队列的实现原理是什么 ? 如何使用阻塞队列来实现生产者 - 消费者模型 ?
- 什么是 Callable 和 Future?
- 什么是 FutureTask? 使用 ExecutorService 启动任务。
- 什么是并发容器的实现 ?
- 多线程同步和互斥有几种实现方法 , 都是什么 ?
- 什么是竞争条件 ? 你怎样发现和解决竞争 ?
- 你将如何使用 threaddump? 你将如何分析 Threaddump?
- 为什么我们调用 start()方法时会执行 run()方法 , 为什么我们不能直接调用 run()方法 ?
- ……
JVM 面试题及解析
- 说⼀下 Java 对象的创建过程
- 对象的访问定位有哪两种⽅式?
- 说⼀下堆内存中对象的分配的基本策略
- Minor Gc 和 Full GC 有什么不同呢 ?
- 如何判断对象是否死亡?(两种⽅法)引⽤计数法可达性分析算法
- 简单的介绍⼀下强引⽤, 软引⽤, 弱引⽤, 虚引⽤强引⽤ (StrongReference) 软引⽤ (SoftReference) 弱引⽤(WeakReference)
- 如何判断⼀个常量是废弃常量?
- 如何判断⼀个类是⽆⽤的类?
- 垃圾收集有哪些算法 , 各⾃的特点 ?( 标记 - 清除算法、复制算法、标记 - 整理算法、分代收集算法 )
- HotSpot 为什么要分为新⽣代和⽼年代 ?
- 常⻅的垃圾回收器有那些?(Serial 收集器、ParNew 收集器、Parallel Scavenge 收集器、Serial Old 收集器、Parallel Old 收集器、CMS 收集器、G1 收集器)
- ……
数据结构与算法面试题及解析
Spring 面试题及解析
- 不同版本的 SpringFramework 有哪些主要功能 ?
- 什么是 SpringFramework?
- 列举 SpringFramework 的优点。
- SpringFramework 有哪些不同的功能 ?
- SpringFramework 中有多少个模块 , 它们分别是什么 ?
- 什么是 Spring 配置文件 ?
- Spring 应用程序有哪些不同组件 ?
- 使用 Spring 有哪些方式 ?
- 依赖注入 (Ioc)
- 什么是 SpringIOC 容器 ?
- 什么是依赖注入 ?
- 可以通过多少种方式完成依赖注入 ?
- 区分构造函数注入和 setter 注入。
- spring 中有多少种 IOC 容器 ?
- 区分 BeanFactory 和 ApplicationContext。
- 列举 IoC 的一些好处。
- SpringIoC 的实现机制。
- ……
MyBatis 面试题及解析
- 如何获取自动生成的 (主) 键值?
- 在 mapper 中如何传递多个参数?
- Mybatis 动态 sql 有什么用 ? 执行原理 ? 有哪些动态 sql?
- Xml 映射文件中 , 除了常见的 select|insert|updae|delete 标签之外 , 还有哪些标签 ?
- 为什么说 Mybatis 是半自动 ORM 映射工具 ? 它与全自动的区别在哪里 ?
- 一对一、一对多的关联查询 ?
- MyBatis 实现一对一有几种方式? 具体怎么操作的 ?
- MyBatis 实现一对多有几种方式, 怎么操作的 ?
- Mybatis 是否支持延迟加载 ? 如果支持 , 它的实现原理是什么 ?
- Mybatis 的一级、二级缓存:
- 什么是 MyBatis 的接口绑定 ? 有哪些实现方式 ?
- 使用 MyBatis 的 mapper 接口调用时有哪些要求 ?
- Mapper 编写有哪几种方式 ?
- 简述 Mybatis 的插件运行原理 , 以及如何编写一个插件。
- ……
Kafka 面试题及解析
- 如何获取 topic 主题的列表
- 生产者和消费者的命令行是什么 ?
- consumer 是推还是拉 ?
- 讲讲 kafka 维护消费状态跟踪的方法
- 讲一下主从同步 **
- 为什么需要消息系统 ,mysql 不能满足需求吗 ?
- Zookeeper 对于 Kafka 的作用是什么 ?
- 数据传输的事务定义有哪三种 ?
- Kafka 判断一个节点是否还活着有那两个条件 ?
- Kafka 与传统 MQ 消息系统之间有三个关键区别
- 讲一讲 kafka 的 ack 的三种机制
- 消费者故障 , 出现活锁问题如何解决 ?
- 如何控制消费的位置
- kafka 分布式 ( 不是单机 ) 的情况下 , 如何保证消息的顺序消费?48316、kafka 的高可用机制是什么 ?
- kafka 如何减少数据丢失
- kafka 如何不消费重复数据 ? 比如扣款 , 我们不能重复的扣。
- ……
数据库面试题及解析 (Redis&MySQL)
Redis
- 什么是 Redis?
- Redis 的数据类型 ?
- 使用 Redis 有哪些好处 ?
- Redis 相比 Memcached 有哪些优势 ?
- Memcache 与 Redis 的区别都有哪些 ?
- Redis 是单进程单线程的 ?
- 一个字符串类型的值能存储最大容量是多少 ?
- Redis 的持久化机制是什么 ? 各自的优缺点 ?
- Redis 常见性能问题和解决方案 :
- redis 过期键的删除策略 ?
- ……
MySQL
- MySQL 中有哪几种锁 ?
- MySQL 中有哪些不同的表格 ?
- 简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别
- MySQL 中 InnoDB 支持的四种事务隔离级别名称 , 以及逐级之间的区别 ?
- CHAR 和 VARCHAR 的区别 ?
- 主键和候选键有什么区别 ?
- myisamchk 是用来做什么的 ?
- 如果一个表有一列定义为 TIMESTAMP, 将发生什么 ?
- 你怎么看到为表格定义的所有索引 ?
- LIKE 声明中的 % 和_是什么意思 ?
- 列对比运算符是什么 ?
- BLOB 和 TEXT 有什么区别 ?
- ……
面试阶段不管遇到什么情况 , 尽可能保持心态好 , 现在大环境不好 , 很多公司招人的标准其实或多或少在变得更高 , 有可能你费尽心思准备了很久 , 但面试的过程和结果还是不尽人意 , 这也是正常的 , 毕竟是大厂嘛 , 要是那么好进就不会那么多人心向往之了。由于篇幅太大更多技术栈的面试题在这就不多做展示了 , 如需原文档参考 ………………………
不是一次面试失败就决定结果了 , 其实大厂的机会一直都有的 , 一个岗位没有通过面试最多就锁半年到一年的时间 , 过了这个时间我们还是可以去重新面试的 , 而且有时候也不用等待那么长 , 这个部门没过说不定可以面试其他部门的岗位 , 只要总结经验 , 多次尝试 , 最后结果再差也比啥都不争取强
原文链接:https://blog.csdn.net/AS011x/article/details/126436639