从业十多年,我从一位向往大厂的面试者成为了一个大厂面试官,身边很多从事Java 开发的朋友都不时咨询如何才能进大厂。的确,进大厂对于大多数人来说,绝不只是谈资,而是一种技术追求。像阿里、腾讯、字节这样的大厂,技术氛围和技术规范都明显优于体量较小的公司,业务场景也更加丰富、更具挑战性。在大厂锻炼几年,可以更好地提升个人能力,对以后的职业规划也有更多选择。
话虽如此,要拿到大厂offer并不容易。简历投递如同大浪淘沙,面试过程也是竞争激烈。特殊时期大厂需求降低,要求反而更高。没有十足准备,很难通过层层筛选。不少Java人的问题并不是技术功底不过关,而是没有形成系统、全面的知识体系,总是被面试官问得哑口无言。
结合自己多年电商大厂面试官的经历,我将这些年常问的知识点从头梳理,整理成100道电商大厂核心面试题,涵盖了大厂必考点、高频点和涨薪点,相信对大家准备面试会有一定帮助,也能解决一部分开发人在日常项目中遇到的问题。
这些点一共分成 5 大类,分别是:Dubbo,ElasticSearch,JVM,多线程/高并发,消息中间件 。我把关于这些问题的拆解与思考,整理成一个 pdf,限于篇幅,这里就不一一列出了。需要的同学可以文末领取,希望能从中有所启发、收获。
这里先罗列出近三年部分技术考核点,具体有:
1 Dubbo
1.1 服务调用超时问题怎么解决?
1.2 Dubbo支持哪些序列化方式?
1.3 Dubbo和SpringCloud的关系?
1.4 Dubbo的架构设计?一共划分了哪些层?
1.5 Dubbo的默认集群容错方案?
1.6 Dubbo使用的是什么通信框架?
1.7 Dubbo的主要应用场景?
1.8 Dubbo服务注册与发现的流程?流程说明。
1.9 Dubbo的集群容错方案有哪些?
1.10 Dubbo的四大组件
1.11 Dubbo在安全机制方面是如何解决的
1.12 Dubbo和SpringCloud的区别?
1.13 Dubbo支持哪些协议,每种协议的应用场景,优缺点?
1.14 Dubbo的核心功能有哪些?
1.15 Dubbo的注册中心集群挂掉,发布者和订阅者之间还能通信么?
1.16 Dubbo集群的负载均衡有哪些策略
1.17 为什么需要服务治理?
1.18 Dubbo超时时间怎样设置?
2 ElasticSearch
2.1 你们公司的ES集群,一个node一般会分配几个分片?
2.2 Elasticsearch是如何实现Master选举的?
2.3 你是如何做写入调优的?
2.4 如何避免脑裂?
2.5 19-Elasticsearch对于大数据量(上亿量级)的聚合如何实现?
2.6 ES主分片数量可以在后期更改吗?为什么?
2.7 如何监控集群状态?
2.8 ElasticSearch中的副本是什么?
2.9 20.ES更新数据的执行流程?
2.10 shard里面是什么组成的?
2.11 ElasticSearch中的分析器是什么?
2.12 什么是脑裂?
2.13 客户端在和集群连接时,如何选择特定的节点执行请求的?
2.14 Elasticsearch中的倒排索引是什么?
2.15 什么是索引?索引(名词) 一个索引(index)
2.16 详细描述一下Elasticsearch更新和删除文档的过程
3 JVM
3.1 JVM参数主要有⼏种分类
3.2 3.Java中会存在内存泄漏吗,简述一下。
3.3 Java虚拟机是如何判定两个Java类是相同的?
3.4 Java 中都有哪些引用类型
3.5 在 Java 中,对象什么时候可以被垃圾回收?
3.6 19.StackOverflow异常有没有遇到过?一般你猜测会在什么情况下被触发?
3.7 堆空间分哪些部分?以及如何设置各个部分?
3.8 什么是栈帧?栈帧存储了什么?
3.9 如何设置参数生成GC日志?
3.10 GC 是什么?为什么要有 GC?
3.11 使用过哪些jdk命令,并说明各个的作用是什么
3.12 JVM运行时数据区区域分为哪⼏部分?
3.13 是否了解类加载器双亲委派模型机制和破坏双亲委派模型?
3.14 逃逸分析有几种类型?
3.15 -Xms这些参数的含义是什么?
3.16你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。
3.17JVM的内存结构,Eden和Survivor比例是多少?
4 多线程/高并发
4.1 负载平衡的意义什么?
4.2 请说出同步线程及线程调度相关的方法?
4.3 关于epoll和select的区别,哪些说法 是正确的?(多选)
A. epoll 和 select 都是 I/O 多路复用的技术,都可以实现同时监听 多个I/O事件的状态。
B. epoll 相比 select 效率更高,主要是基于其操作系统支持的 I/O 事件通知机制,而select是基于轮询机制。
C. epoll支持水平触发和边沿触发两种模式。
D. select能并行支持I/O比较小,且无法修改。
4.4 启动一个线程是调用run()方法还是start()方法?
4.5 如何确保N个线程可以访问N个资源同时又不导致死锁?
4.6 编写多线程程序的几种实现方式(换个问法:创建多线程的方式)?
4.7 线程和进程的区别?
4.8 什么是线程池,有哪些常用线程池?
4.9 什么是死锁?
4.10 怎么保证缓存和数据库数据的一致性?
5 消息中间件
5.1 消费者获取消息有几种模式?
5.2 17.RocketMQ的特点有哪些?
5.3 kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka将如何处理?
5.4 为何需要Kafka集群
5.5 Kafka 数据存储设计
5.6 Kafka如何判断一个节点是否存活?
5.7 kafka消息发送的可靠性机制有几种
5.8 请详细说一下推送模式和拉取模式。
5.9 Kafka 与传统消息系统之间有三个关键区别
5.10 RocketMQ 由哪些角色组成?
5.11 23.Kafka的消费者如何消费数据
5.12 Kafka的优点
5.13 Kafka 的设计是什么样的呢?
5.14 说说你对Consumer的了解?
5.15 Kafka新建的分区会在哪个目录下创建
5.16 说一下Kafka消费者消费过程
5.17 介绍下Kafka
5.18 什么情况会导致Kafka运行变慢?
高频面试题答案文档获取,添加VX:MXW5308 即可免费获取
(视频教程+面试宝典+pdf书籍+笔记+学习思维导图 )
Java进阶架构师视频教程:价值上万足足100G、1000+小时架构师教程.,Java程序员进阶架构师看这个就够了!
程序员必备算法教程:有史以来最全阿里、腾讯、字节、美团、谷歌算法面试题合集
Java面试教程合集:2020年复盘阿里、字节、美团、腾讯、谷歌Java面试(大厂必问108个知识点)
Java核心面试宝典复习知识
这本Java核心知识把每个知识点解析的很深,对大家应该很有帮助,它把大部分的Java知识集结在一起深入的解析出来(非常建议大伙看一看)
-
JVM
-
JAVA集合
-
JAVA多线程并发
-
JAVA基础
-
Spring原理
-
微服务
-
Hetty与PC
-
网络
-
日志
-
Zookeeper
-
Kafks
-
Rabbi tMQ
-
Hbase
-
MongoDB
-
Cassandra
-
设计模式
-
负载均衡
-
数据库
-
一致性算法
-
JAVA算法
-
数据结构
-
加密算法
-
分布式缓存
-
Hadoop
-
Spark
-
Storm
-
YARIN
-
机器学习
-
云计算
求来的大厂面试场景(为了学习提升可以没脸没皮,啊哈哈哈)
我针对这些大厂的面经场景也找了很多题刷,对自身的提升也是非常大(还特意要了份面试答案)
美团部分面经
好未来面试场景
分享一些我个人的学习文档,有需要的朋友自行选择获取:
1、面试文档专题整理
既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
根据自身面试经历整理以及不断收集的(珍藏版)
相关的电子书、底层源码
阿里巴巴必备学习知识点
最后
很多人感叹“学而无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
面试资料及书籍获取地址以上学习资料均免费放送,最后祝愿各位身体健康,顺利拿到心仪的offer!
【附】架构书籍赠送
-
大型网站技术架构核心原理与案例分析
-
小米开源架构
-
亿级流量网站架构核心技术
-
Nginx实战书籍
添加VX:MXW5308 来获取学习资料吧~
来源:oschina
链接:https://my.oschina.net/u/4411637/blog/4672834