面试近300人的首席架构师整理出100道面试题,能不能进蚂蚁就看你了!

从 2012 年担任电商项目的技术负责人,再到后来的首席架构师,我前前后后面试了至少300位技术人。其中不少入职的同事后来的发展都不错,也坚定了我对于选人标准的自信心。

今年找工作尤其艰难,我把这些年作为面试官一些重要的面试问题整理出来,不下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 Dubbo集群的负载均衡有哪些策略

1.18 Dubbo 在安全机制方面是如何解决的

1.19 为什么需要服务治理?

1.20 Dubbo超时时间怎样设置?

2 ElasticSearch

2.1 你们公司的ES集群,一个node一般会分配几个分片?

2.2 Elasticsearch是如何实现Master选举的?

2.3 你是如何做写入调优的?

2.4 如何避免脑裂?

2.5 19-Elasticsearch对于大数据量(上亿量级)的聚合如何实现?

2.6 ES主分片数量可以在后期更改吗?为什么?

2.7 ES主分片数量可以在后期更改吗?为什么?

2.8 如何监控集群状态?

2.9 ElasticSearch中的副本是什么?

2.10 20-Elasticsearch是如何实现Master选举的?

2.11 20.ES更新数据的执行流程?

2.12 shard里面是什么组成的?

2.13 ElasticSearch中的分析器是什么?

2.14 什么是脑裂?

2.15 20-Elasticsearch是如何实现Master选举的

2.16 客户端在和集群连接时,如何选择特定的节点执行请求的?

2.17 Elasticsearch中的倒排索引是什么?

2.18 什么是脑裂?

2.19 什么是索引?索引(名词) 一个索引(index)

2.20 详细描述一下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.12 使用过哪些jdk命令,并说明各个的作用是什么

3.13 JVM运行时数据区区域分为哪⼏部分?

3.14 是否了解类加载器双亲委派模型机制和破坏双亲委派模型?

3.15 逃逸分析有几种类型?

3.16 -Xms这些参数的含义是什么?

3.17 你知道哪几种垃圾收集器,各自的优缺点,重点讲下cms和G1,包括原理,流程,优缺点。

3.18 JVM的内存结构,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.12 23.Kafka的消费者如何消费数据

5.13 Kafka的优点

5.14 Kafka 的设计时什么样的呢?

5.15 说说你对Consumer的了解?

5.16 Kafka新建的分区会在哪个目录下创建

5.17 说一下Kafka消费者消费过程

5.18 介绍下Kafka

5.19 什么情况会导致Kafka运行变慢?

经典算法面试宝典

着:左程云

这是一本程序员面试宝典!书中对IT名企图面试的类别转化的最优解进行了总结,并提供了相关的代码实现。针对当前程序员面试缺乏权威的总结总结这一痛点,这本书选择“将近200道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无-一失。”

附:排序与数据结构与算法

Java面试突击

这是一本关于面试大厂回来整理的面经及知识点(每个译文有对应的面试答案)

技术要点

  1. 爪哇
  2. 计算机网络常见面试点总结
  3. 的Linux
  4. 的MySQL
  5. 雷迪斯
  6. 弹簧
  7. 消息数值
  8. 达博
  9. 数据结构
  10. 算法

1000道面试题及答案

内容涵盖:Java。MyBatis。ZooKeeper。达博。Elasticsearch,Memcached,Redis,MySQL,Spring,Spring Boot。春天的云。RabbitMQ,Kafka,Linux等技术栈

程序员面试指南,1000 +面试题及答案,Java面试突击,算法等面试宝典,发现者的小伙伴转发此文关注我私信回复“666”即可免费领取

推荐阅读:

牛皮了,马士兵老师全网首播阿里P8级技术、实现大型淘宝实战落

面试美团被JVM惨虐?阿里P9架构师用500分钟把JVM从入门讲到实战#合集

清华启蒙架构师马士兵针对应届生到开发十年的Java程序员做职业把脉

马士兵教育:Spring源码实战全集,资深架构师带你搞懂Spring源码底层从入门到入坟

阿里P9架构师120分钟带你掌握线程池,不在为线程而烦恼

猜你喜欢

转载自blog.csdn.net/weixin_45132238/article/details/107819080
今日推荐