阿里评估面(Java 后端)
电话面试
上来先问我比较熟悉哪些,我没有直接回答 Redis、MySQL (怕被集中火力问一个点),说没有专精学哪个点,都是做项目过程中遇到问题解决问题学习的技术,然后开始介绍第一个项目的开发过程。
然后开始问项目
第一个项目:
和学校合作的一个项目,项目已上线并且面试官在线访问看到了,我讲了作为负责人我怎么做市场调研、竞品分析、需求分析、库表设计、开发、代码协作、联调以及上线和运营的,然后问了我项目管理的过程(敏捷开发、敏捷开发原则)、开发过程协作中遇到的问题,问了怎么做需求评估的
第二个项目(鱼皮API开放平台):为什么要用网关、网关单点部署服务的可用性(如何保证整体服务的高可用性)
然后问技术:
Redis 基本数据结构及其底层实现(先说了5种基本数据结构,然后开始问底层,说了SDS、跳表、压缩列表)
计网:
TCP 和 UDP 的区别
GET 和 POST 的区别
HTTPS及其底层实现(讲了数学原理,然后 https四次握手 流程说到一半,面试官说可以了)
打开网页,浏览器是怎么样的?
系统网卡是如何接收请求(数据的) 零拷贝(需要再看一看)
TCP 如何保证可靠性?
JVM
Java内存结构、内存模型,为什么会有并发问题(i++ 不一致)
volatile可以保证多个线程操作某一共享变量的同步性吗
最后说问一个简单的 MySQL 问题
MySQL 最左前缀匹配原则以及底层实现原理 (最左前缀匹配答出来了,底层实现没答出来,下去再看一看)
反问
问了一下怎么能提高技术深度。面试官回答不同的场景有不同的情况,做基础架构更需要提升深度,做业务要会沟通和协调、需求分析和评估,专才专能。
怎么能提升业务水平。面试官说在哪个位置上自然就学到了,但是要学习积累和沉淀,要多思考和总结,同时也要抬头看路。
面试官最后补充,让我选近一些的笔试时间。
挂了电话,10分钟后收到了笔试邮件
