最近有很多朋友去目前主流的大型互联网公司面试(阿里巴巴、京东、美团、滴滴),面试回来之后会发给我一些面试题。有些朋友轻松过关,拿到offer,但是有一些是来询问我答案的。
其实本来真的没打算写这篇文章,主要是自己得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。(今天主要是分享阿里的面试题)
第一轮:电话初面
第二轮:技术面谈【技术职位尽量避免多谈管理上的工作】
第三轮:高管复试
第四轮:HR最后确认
一面:首先确认对阿里的意向度(如果异地更会考虑对工作地点(杭州)的意向度!阿里很看重这个);其次面试官一般会针对您所做过的项目来做具体技术的交流,会比较关注个人对项目细节是不是掌握到位,主要考察java的技术基础和原理,比如Spring框架以及数据库和JVM三个方面,也会交流到分布式、线程池的实现等等,重点考察是不是有比较钻研技术和技术上的亮点【不一定每个面都很厉害但一定要有亮点】;
二面:技术面,根据项目深入的了解技术实力,了解您的知识面,了解您的问题解决能力以及技术灵活运用能力,也通过这一过程考察团队合作能力、学习主动性和创新性,可以挑选2-3个做过的有典型性的项目做一个仔细 技术回顾和自己独到的理解【这会成为您的加分项】;
三面:他们最后的高管复试会涉及到相关的技术问题,大部分是对你的整体价值观做宏观的把控(比如上进心,责任心,心态,工作激情等)
HR确认:基本就是从大方向了解一下您的心态、抗压能力,工作中的角色、未来大致的规划以及对阿里的意向度
【技术基础以及的问题多看看书准备下就行了,不懂的直接说不懂没关系的;在项目细节上多把关一下,根据项目有针对性的谈自己的技术亮点,能表达清楚,可以引导面试官来问你比较擅长的技术问题,个人就可以尽情发挥】
阿里比较喜欢的人才特点:对技术有热情,强硬的技术基础实力;主动,善于团队协作,善于总结思考;
阿里面试问的问题会比较底层
1. Java内存结构,spring的aop的实现方法,java数据库问题定位和性能调优;
2. 关于Java异常的续承层次结构,讲述异常的续承关系;
3. java中重载和重写有什么区别,分别用什么关键字;
4. 关于分布式消息队列,分布式缓存;
5. 关于hashmap源码实现, jdk
6. 关于设计模式,uml,jvm 内存回收机制问题
7. java线程如何启动?java中加锁的方式有哪些,怎么个写法?
8. 对乐观锁和悲观锁的理解;
9. ORACLE中的SQL如何进行优化,都有哪些方式?事务有哪些特性,在ORACLE中隔离有哪些级别?
10.介绍一下自己最近做的一个典型的项目;
11.在项目中遇到了哪些问题,自己是如何解决的 ;
12.目前系统支撑的用户量是多少,假如用户量提升10倍,系统会出现什么样的问题,如何重新设计系统【这里主要是想了解您的问题预见能力以及问题解决能力,考查思路】
13. 使用memcached是一个什么样的原理
14. 如何存放数据到memcached集群中,介绍一下这个过程。跟进的问题,讲一下一致性哈希算法的实现原理。
15. JVM中堆是如何管理的,JVM的内存回收机制,介绍一下
16. 分布式事务实现方式
17. 热点账户问题(项目中有就会问)
第一轮技术面试(电面)涉及Java基础点(可参考):
session
java锁
gc原理
hashmap
listlink arraylist 区别
aop 原理
多线程
kafka 原理和容错
spark hadoop 原理
redis 同步机制
classLoader 机制
Http 协议
cookie的限制
HashMap key的要求 , hashcode一致两个对象是否相等
JVM的原理
涉及面较广,包括谈到项目上遇到的问题,以此深入探讨。
XX:
介绍自己的工作职责、技术or管理怎么分配的
介绍项目,涉及的技术把整个流程说下。然后他感兴趣就会深入问
然后就是聊一些jvm、nosql之类的
假如服务器反应很慢,你应该怎么排查问题
怎么跟踪一个方法的用时,并且最小限度干涉业务程序
旁听面试-Java:
人选介绍目前目前技术管理侧重;
对阿里推荐对应岗位的理解度;
系统设计是怎么样的;
做的一些架构,数据源来自于哪里并深入问;
模块边界,缓存机制;
选用技术选型时,A和B的区别;
多线程如何用,有什么好处,和进程的区别;
多线程的过程;
多线程同步的方法,X项目中如何去实现;
分布式架构在你目前项目中的体现;
跨主机通信用过什么,接口等;
大数据存储;
结尾:你自己觉得你擅长什么,以后想走的路线,技术还是管理;
Java面试题分享:
JMS的两种模式是那些;
富客户端怎么更新;
自己设计类似ESB这样的企业数据总线应该有哪些功能;
系统架构设计;
集群中怎么控制session;
怎么样知道java存中是哪一些模块消耗内存比较多;
应用服务器的参数调整。
如果你也对Java高并发、微服务、源码分析、性能优化、分布式等技术感兴趣可以来我的Java后端架构群,群里有一线互联网大牛,也有一些资深HR,比较喜欢技术,所以自己收集了一套Java架构资料,欢迎大家来群里下载,架构群号:836036968