前言
很多 Java 开发者面试之前,可能没有较长的工作时间或者较为丰富的工作经验,所以不知道互联网公司或者一线互联网公司技术面试都会问哪些问题? 再加上可能自己准备也不充分,去面试没几个回合就被面试官几个问题打蒙了,最后以惨败收场。针对这些的读者朋友,小编整理了一些知名大厂的面经,在这分享给读者朋友们参考,让即将面试或是有想法跳槽的读者朋友们了解一下一线大厂面试时都喜欢问那些问题。
开始
蚂蚁金服(三面)Zookeeper+微服务+消息中间件+高并发架构设计
一面
-
JVM 数据存储模型,新生代、年老代的构造?
-
java GC 算法,什么时候会触发 minor gc,什么时候会触发 full gc?
-
GC 可达性分析中哪些算是 GC ROOT?
-
你熟悉的 JVM 调优参数,使用过哪些调优工具?
-
Java 有什么锁类型?
-
描述下线程池的处理流程?
-
类加载机制,一个类加载到虚拟机中一共有几个步骤,这些步骤的顺序哪些是固定的,哪些是不固定的,为什么不固定
-
hashmap 是线程不安全的,concurrenthashmap 是线程安全的,怎么实现的线程安全?
-
volatile 关键字解决了什么问题,实现原理是什么
-
并发容器有哪些,并发容器和同步容器的区别
二面
-
在工作中,SQL 语句的优化和注意的事项
-
哪些库或者框架用到 NIO
-
Spring 都有哪几种注入方式,什么情况下用哪种,ioc 实现原理
-
如何定位一个慢查询,一个服务有多条 SQL 你怎么快速定位
-
聚集索引和非聚集索引知道吗?什么情况用聚集索引什么情况用非聚集索引
-
Nosql 引擎用的什么存储结构,关系型数据库和 NoSQL 各自的优劣点是什么,如何技术选型?
-
微服务架构下,如果有一个订单系统,一个库存系统,怎么保证事务?
-
分布式一致性协议 raft,paxos 了解吗
-
Zookeeper 中的 ZAB 协议,选主算法
三面
-
自我介绍
-
参与的并发项目,从设计到部署,按照流程讲一遍。
-
项目相关你用过 redis,用在什么场景,怎么使用的?
-
mysql 同步机制原理,有哪几种同步方法
-
数据库主从同步如何实现,事务如何实现
-
谈谈你对 SOA 和微服务的理解,以及分布式架构从应用层面涉及到的调整和挑战。
-
阿里系中间件 metaQ 及原理与现有的 kafka 有什么异同
-
在阿里有了解过什么中间件吗?实现原理?与其他开源消息队列有什么特点?
-
为什么选择换公司?
-
三年到五年的职业规划?
-
你有想问我的?
拼多多(三面)幻影读+分段锁+Spring Cloud+秒杀
一面
-
简短自我介绍
-
事务的 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,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么?
-
遇到最大困难是什么?怎么克服?
-
未来的规划是什么?
-
你想问我什么?
天猫(四面)发压测+Mina+事务+集群+秒杀架构
一面
-
常见集合类的区别和适用场景
-
并发容器了解哪些?
-
如何判断链表是否有环
-
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 轮面试
-
你怎么看待你自己,你最大的核心竞争力是什么
-
未来自己的职业规划
-
对阿里技术氛围有什么样的理解,用过哪些阿里的开源库
-
期望的薪资是多少
-
最后,你有什么想了解的
以上就是一些知名大厂的面试经过,限制已经进入了求职招聘高峰,小编在这分享总结的 Java 面试的高频面试题(包括了 Java 集合,JVM,并发与多线程,Spring,MyBaits,微服务,Dubbo,Kakfa,中间件,Redis,数据库,设计模式等),进行了整理,免费分享给大家。
Java 高频面试题答案获取方式:点击这里即可获取到文章中的文档,资料!
希望大家能带着这些问题和答案解析,能让你进行有针对性行的学习,对面试做到知己知彼,百面百胜。