说起来开始进行面试是年前倒数第二周,上午9点,我还在去公司的公交上,突然收到蚂蚁的面试电话,其实算不上真正的面试。面试官只是和我聊了下他们在做的事情(主要是做双十一这里大促的稳定性保障,偏中间件吧),说的很详细,然后和我沟通了下是否有兴趣,我表示有兴趣,后面就收到正式面试的通知,最后没选择去蚂蚁表示抱歉。
当时我自己也准备出去看看机会,顺便看看自己的实力。当时我其实挺纠结的,一方面现在部门也正需要我,还是可以有一番作为的,另一方面觉得近一年来进步缓慢,没有以前飞速进步的成就感了,而且业务和技术偏于稳定,加上自己也属于那种比较懒散的人,骨子里还是希望能够突破现状,持续在技术上有所精进。
闲聊偏多,问的技术性问题比较基础
·简单说说面向对象的特征以及六大原则
·谈谈final、finally、finalize的区别
·Java中==、equals与hashCode的区别和联系
·谈谈Java容器ArrayList、LinkedList、·HashMap、HashSet的理解,以及应用场景
·谈谈线程的基本状态,其中的wait() sleep() yield()方法的区别。
问题深入一些,开始加难度
·JVM性能调优的监控工具了解那些?
·简单谈谈JVM内存模型,以及volatile关键字
·垃圾收集器与内存分配策略
·垃圾收集算法
·MySQL几种常用的存储引擎区别
·数据库的隔离级别
·算法:5亿整数的大文件,怎么排?
三面问题更为细致了,考察项目经验更多
·Java内存模型
·full gc怎么触发
·gc算法
·JVM回收策略
·ClassLoader原理和应用
·高吞吐量的话用哪种gc算法
·ConcurrentHashMap和HashMap
·volatile的底层如何实现,怎么就能保住可见性了?
·有参与过开源的项目吗?
·线程池原理,拒绝策略,核心线程数
·1亿个手机号码,判断重复
·线程之间的交互方式有哪些?有没有线程交互的封装类
重点考察全局观和应急处置
·项目介绍
·两次点击,怎么防止重复下订单
·数据库表设计,索引
·Redis的缓存淘汰策略、更新策略
·dubbo、netty、RPC介绍原理
·限流算法
·zk挂了怎么办
·分布式锁的实现方式,zk实现和Redis实现的比较
·秒杀场景设计,应付突然的爆发流量
·分布式数据一致性
·一致性哈希
·消息队列原理介绍
·注解的原理
·数据库原理,数据库中间件,索引优化
·ioc原理、aop原理和应用
·大数据相关,MapReduce
·Docker的原理
其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。
特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。
也祝愿各位同学,都能找到自己心动的offer。
分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档,需要的朋友可以【点赞+关注】戳这里即可免费获取
所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档,需要的朋友可以【点赞+关注】戳这里即可免费获取