朋友开发六年多,从一个中游的公司跳槽的阿里P7,其实这六轮的面试下来整体感觉还是不错的,在这之前我其实面试的其他公司的时候也很好。
第一轮:团队面试
第一轮基本上是你的团队成员面试你,是和你同级或者高你一个P的师兄来面你,主要还是讲自己简历上的做的项目,这里需要你很熟悉自己的项目才行,我个人觉得这里你要把项目里你的角色做了什么没做什么讲清楚,然后最好能把自己做的那部分重点展开来讲,然后面试官会从你讲的内容里挑一些具体来问你,这部分就因人而异了,知道的说不知道的别瞎说。
第二轮:主管面试
这一面我的面试官还是让我主要介绍简历(可能因为我是社招,有项目经历他们比较感兴趣吧),然后我就又讲了一遍。都是他们听见啥感兴趣的就会问你是“怎么实现的,为什么这么实现,有没有更好的实现方式”这三个问题。这一轮对面最少都是P8级别的人了,千万可别不懂装懂的乱说呀。还是那句话,知之为知之,不知为不知,是知也。
第三轮:交叉面试
这一面基本是找个其他部门和你将来的主管平级的leader来面你一遍,防止前面自己部门面试作弊嘛,基本套路和二面差不多,但是会多问你一些基础知识和编程能力上的事,主要还是以考核你为目的,肯定不是为了难为你的,所以,好好加油表现出你自己就行。
第四轮:代码面试
这一面的面试是给你一个在线网站,然后你和你的面试官一起登陆上去,共享web页面,然后他给你出题,你来现场写代码,伪代码就行,然后你再给他讲一遍你的逻辑就ok了。这一面没什么好讲的,写代码嘛,是骡子是马拉出来溜溜咯。出的题不会很难,我答的是两道,一道给我半小时,第一道是给你一个shell命令,执行的功能大概就是读取一个日志文件,然后根据日志里的某一字段排序,然后取前五,输出。
第五轮:boss面试
到这一面的时候基本就稳了,当然我也见过挂的。这一面就是你的主管的主管来面你了,我当时还是先讲项目,然后挑重点的问,不过和二三面明显的区别就是他会问你更高层次的解决方案,不在拘泥于你做的那一点东西,会让你从整体上或者部分整体上讲清楚你项目的解决方案以及你自己的思考(上面的那三个问题),会让你尝试给出更好的解决方案,并解释原因。
我个人感觉这一面更多的是考验你的全局观,你要是一直拘泥于自己的小天地,那估计会吃亏的。当然,面试分人的,有的非技术出身的主管就是和你聊聊天谈谈人生理想什么的,你要是不match也会被淘汰。
第六轮:HRG面试
谈人生谈理想谈三观谈薪资。
下面分享一下在准备面试阿里的这段时间里我自己准备的面试题的总结(其实大家大部分面试中遇到的问题,在这套面试题中都是涵盖的) 答案打开方式:三连后私信(555)即可领取!
MyBatis面试题
MyBatis这一部分我是38道题,可能这一部分的面试题稍微偏基础一些,甚至有些面试根本不会用到。
1、什么是Mybatis?
2、Mybaits的优点?
3、MyBatis框架的缺点?
4、MyBatis框架适用场合
5、MyBatis与Hibernate有哪些不同?
6、#{} 和${}的区别是什么?
7、当实体类中的属性名和表中的字段名不一样,怎么办?
8、 模糊查询like语句该怎么写?
9、通常一个Xml映射文件,都会写一个Dao接口与之对应, 请问,这个Dao接口的工作原理是什么?Dao接口里的方法, 参数不同时,方法能重载吗?
10、Mybatis是如何进行分页的?分页插件的原理是什么?
11、Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
12、 Mybatis如何执行批量操作
13、如何获取自动生成的(主)键值?
14、在mapper中如何传递多个参数?
15、Mybatis动态sql有什么用?执行原理?有哪些动态 sql?
16、Xml映射文件中,除了常见的select|insert|updae|delete 标签之外,还有哪些标签?
18、为什么说Mybatis是半自动ORM映射工具?它与全动的区别在哪里?
19、 一对一、一对多的关联查询 ?
20、MyBatis实现一对一有几种方式?具体怎么操作的?
21、MyBatis实现一对多有几种方式,怎么操作的?
22、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
23、Mybatis的一级、二级缓存:
24、什么是MyBatis的接口绑定?有哪些实现方式?
25、使用MyBatis的mapper接口调用时有哪些要求?
26、Mapper编写有哪几种方式?
27、简述Mybatis的插件运行原理,以及如何编写一个插件?
28、传统JDBC开发存在什么问题?
29、JDBC编程有哪些不足之处,MyBatis是如何解决的?
30、MyBatis编程步骤是什么样的?
31、请说说MyBatis的工作原理?
32、MyBatis的功能架构是怎样的?
33、MyBatis的框架架构设计是怎么样的?
34、什么是DBMS?
35、为什么需要预编译?
36、Mybatis都有哪些Executor执行器?它们之间的区别是什么?
37、Mybatis中如何指定使用哪一种Executor执行器?
38、Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
ZooKeeper面试题
ZK总共23道题,ZK问的有基础,也有比较难的。
1.ZooKeeper是什么?
2.ZooKeeper提供了什么?
3.Zookeeper文件系统
4.四种类型的znode
5.Zookeeper通知机制
7.zk的命名服务(文件系统)
8.zk的配置管理(文件系统、通知机制)
9.Zookeeper集群管理(文件系统、通知机制)
10.Zookeeper分布式锁(文件系统、通知机制)
11.获取分布式锁的流程
12.Zookeeper队列管理(文件系统、通知机制)
13.Zookeeper数据复制
14.Zookeeper工作原理
15.zookeeper是如何保证事务的顺序一致性的?
16.Zookeeper下Server工作状态
17.zookeeper是如何选取主leader的?
18.Zookeeper同步流程
19.分布式通知和协调
20.机器中为什么会有leader?
21.zk节点宕机如何处理?
22.zookeeper负载均衡和nginx负载均衡区别
23.zookeeperwatch机制
Dubbo面试题
Dubbo这一部分总共30道题,面试提问笔记多的就是Dubbo和Dubbox、SpringCloud进行对比和分析,当然这些面试题我也整理了很多。
1、为什么要用Dubbo?
2、Dubbo的整体架构设计有哪些分层?
3、默认使用的是什么通信框架,还有别的选择吗?
4、服务调用是阻塞的吗?
5、一般使用什么注册中心?还有别的选择吗?
6、默认使用什么序列化框架,你知道的还有哪些?
7、服务提供者能实现失效踢出是什么原理?
8、服务上线怎么不影响旧版本?
9、如何解决服务调用链过长的问题?
10、说说核心的配置有哪些?
11、Dubbo推荐用什么协议?
12、同一个服务多个注册的情况下可以直连某一个服务吗?
13、画一画服务注册与发现的流程图?
14、Dubbo集群容错有几种方案?
15、Dubbo服务降级,失败重试怎么做?
16、Dubbo使用过程中都遇到了些什么问题?
17、Dubbo Monitor实现原理?
18、Dubbo用到哪些设计模式?
19、Dubbo配置文件是如何加载到Spring中的?
20、Dubbo SPI和Java SPI区别?
21、Dubbo支持分布式事务吗?
22、Dubbo可以对结果进行缓存吗?
23、服务上线怎么兼容旧版本?
24、Dubbo必须依赖的包有哪些?
25、Dubbo telnet命令能做什么?
26、Dubbo支持服务降级吗?
27、Dubbo如何优雅停机?
28、Dubbo和Dubbox之间的区别?
29、Dubbo和Spring Cloud的区别?
30、你还了解别的分布式框架吗?
Elasticsearch面试题
24道题,这一部分和下一部分可能面试的比较少,所以相关的面试题也相对少一些,但是有一道题很有意思,是让你介绍你们的电商搜索的整体技术架构。
1、Elasticsearch了解多少,说说你们公司ES的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
2、Elasticsearch的倒排索引是什么?
3、Elasticsearch索引数据多了怎么办,如何调优,部署?
4、Elasticsearch是如何实现master选举的?
5、详细描述一下Elasticsearch索引文档的过程。
6、详细描述一下Elasticsearch搜索的过程?
7、Elasticsearch在部署时,对Linux的设置有哪些优化方法?
8、lucence内部结构是什么?
9、Elasticsearch是如何实现Master选举的?
10、Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?
11、客户端在和集群连接时,如何选择特定的节点执行请求的?
12、详细描述一下Elasticsearch索引文档的过程。
13、详细描述一下Elasticsearch更新和删除文档的过程。
14、详细描述一下Elasticsearch搜索的过程。
15、在Elasticsearch中,是怎么根据一个词找到对应的倒排索引的?
16、Elasticsearch在部署时,对Linux的设置有哪些优化方法?
17、对于GC方面,在使用Elasticsearch时要注意什么?
18、Elasticsearch对于大数据量(上亿量级)的聚合如何实现?
19、在并发情况下,Elasticsearch如果保证读写一致?
20、如何监控Elasticsearch集群状态?
21、介绍下你们电商搜索的整体技术架构。
22、介绍一下你们的个性化搜索方案?
23、是否了解字典树?
24、拼写纠错是如何实现的?
Memcached面试题
24道题
1、Memcached是什么,有什么作用?
2、memcached服务在企业集群架构中有哪些应用场景?
3、Memcached服务分布式集群如何实现?
4、Memcached服务特点及工作原理是什么?
5、简述Memcached内存管理机制原理?
6、memcached是怎么工作的?
7、memcached最大的优势是什么?
8、memcached和MySQL的query
9、memcached和服务器的local cache(比如PHP的APC、mmap文件等)相比,有什么优缺点?
10、memcached的cache机制是怎样的?
11、memcached如何实现冗余机制?
12、memcached如何处理容错的?
13、如何将memcached中item批量导入导出?
14、如果缓存数据在导出导入之间过期了,您又怎么处理这些数据呢?
15、memcached是如何做身份验证的?
16、memcached的多线程是什么?如何使用它们?
17、memcached能接受的key的最大长度是多少?
18、memcached对item的过期时间有什么限制?
19、memcached最大能存储多大的单个item?
20、memcached能够更有效地使用内存吗?
21、什么是二进制协议,我该关注吗?
22、memcached的内存分配器是如何工作的?为什么不适用malloc/free?为何要使用slabs?
23、memcached是原子的吗?
24、如何实现集群中的session共享存储?
25、memcached与redis的区别。
Redis面试题
40道Redis面试题,Redis底层运行原理、分布式锁、缓存、限流、秒杀等等这些部分问的还是比较多的,也需要你自己有一个完整的调优思路才可以。
1. 缓存穿透、缓存击穿、缓存雪崩解决方案?
2. 定期删除策略
3. 如何保证缓存与数据库双写时的数据一致性?
4. 为什么Redis的操作是原子性的,怎么保证原子性的?
5. Redis 事务相关的命令有哪几个?
6. 什么是 Redis?简述它的优缺点?
7. Redis 的持久化机制是什么?各自的优缺点?
8. 分布式Redis是前期做还是后期规模上来了再做好?为什么?
9. 为什么 Redis 需要把所有数据放到内存中?
10. 怎么理解 Redis 事务?
11. 你知道有哪些Redis分区实现方案?
12. Redis事务的概念
13. 知道 redis 的持久化吗?底层如何实现的?有什么优点缺点?
14. 缓存雪崩和缓存穿透问题解决方案
15. Redis 内部结构
16. Redis是单线程的,如何提高多核CPU的利用率?
17. Redis中数据库默认是多少个db即作用?
18. Redis持久化数据和缓存怎么做扩容?
19. 为什么要用 redis/为什么要用缓存
20. redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的memcached 效率要高?
21. 请用Redis和任意语言实现一段恶意登录保护的代码,限制1小时内每用户Id最多只能登录5次。具体登录函数或功能用空函数即可,不用详细写出。
22. Redis的内存占用情况怎么样?
23. Redis 如何做内存优化?
24. Redis有哪些优缺点
25. 使用 Redis 做过异步队列吗,是如何实现的
26. Redis 常见性能问题和解决方案?
27. redis 过期策略都有哪些?LRU 算法知道吗?
28. Redis 为什么是单线程的
29. Reids的特点
30. Redis的内存用完了会发生什么?
31. Redis的过期策略以及内存淘汰机制
32. 单线程的redis为什么这么快
33. Redis 有哪些适合的场景?
34. 对于大量的请求怎么样处理
35. 在选择缓存时,什么时候选择 redis,什么时候选择 memcached?
36. Redis为什么这么快
37. 都有哪些办法可以降低Redis的内存使用情况呢?
38. Redis 集群之间是如何复制的?
39. Redis 集群最大节点个数是多少?
40. 为什么要做Redis分区?
41. MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?
42. Redis 回收进程如何工作的?
43. Redis 常见的性能问题和解决方案
44. Redis事务支持隔离性吗
45. 加锁机制
46. Redis事务
47. 惰性删除策略
48. Redis 集群方案应该怎么做?都有哪些方案?
49. 说说 Redis 哈希槽的概念?
50. Redis事务其他实现
MySQL面试题
50道题,MySQL调优这一方面的问题基本面试必问,所以需要大家有一个相对完整的调优思路,通过刷这50道题中相信大家可以从中找到一些新大陆。
1、一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?
2、Mysql的技术特点是什么?
3、Heap表是什么?
4、Mysql服务器默认端口是什么?
5、与Oracle相比,Mysql有什么优势?
6、如何区分FLOAT和DOUBLE?
7、区分CHAR_LENGTH和LENGTH?
8、非聚簇索引一定会回表查询吗?
9、数据库三大范式是什么
10、数据库为什么使用B+树而不是B树
11、SQL的生命周期?
12、主键索引与唯一索引的区别
13、MySQL数据库cpu飙升的话,要怎么处理呢?
14. 日常工作中你是怎么优化SQL的?
15.数据库索引的原理,为什么要用 B+树,为什么不用二叉树?
16. 事务的隔离级别有哪些?MySQL的默认隔离级别是什么?
17. 如果某个表有近千万数据,CRUD比较慢,如何优化。
18、请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
19、在Mysql中ENUM的用法是什么?
20、如何定义REGEXP?
21、CHAR和VARCHAR的区别?
22、列的字符串类型可以是什么?
23、如何获取当前的Mysql版本?
24、Mysql中使用什么存储引擎?
25、Mysql驱动程序是什么?
26、TIMESTAMP在UPDATECURRENT_TIMESTAMP数据类型上做什么?
27、主键和候选键有什么区别?
28、如何使用Unixshell登录Mysql?
29、myisamchk是用来做什么的?
30、MYSQL数据库服务器性能分析的方法命令有哪些?
31、如何控制HEAP表的最大尺寸?
32、MyISAMStatic和MyISAMDynamic有什么区别?
33、federated表是什么?
34、如果一个表有一列定义为TIMESTAMP,将发生什么?
35、列设置为AUTOINCREMENT时,如果在表中达到最大值,会发生什么情况?
36、怎样才能找出最后一次插入时分配了哪个自动增量?
37、你怎么看到为表格定义的所有索引?
38、LIKE声明中的%和_是什么意思?
39、如何在Unix和Mysql时间戳之间进行转换?
40、列对比运算符是什么?
41、我们如何得到受查询影响的行数?
42、Mysql查询是否区分大小写?
43.、LIKE和REGEXP操作有什么区别?
44.、BLOB和TEXT有什么区别?
45、mysql_fetch_array和mysql_fetch_object的区别是什么?
46、我们如何在mysql中运行批处理模式?
47、MyISAM表格将在哪里存储,并且还提供其存储格式?
48.、Mysql中有哪些不同的表格?
49、ISAM是什么?
50、InnoDB是什么?
不一一罗列出来了
Java并发编程(一)
并发编程第一部分75道题,并发编程这一部分就不用多说了吧,必考题。
................................
..............................
Java并发编程(二)
第二部分是48道题。
.......................................
...........................
Java面试题(一)
Java基础部分,基本面试中一面的大部分题都涵盖在里面(我还特意细分了2大部分,我细心吧!)
...............................
Java面试题(二)
............................
Spring面试题
..........................
微服务面试题 10道
.........................................
以上完整题目答案资料,及更多java大小厂 面经真题获取方式: 点赞 私信 需要
感谢大家的阅读...................................