【9月Android面经分享】惜挂阿里三面,终被网易收下!

我是今年9月份参加阿里和字节跳动的面试的,最后虽然在9月末面试网易才拿到offer,但是我自己也满足了,想把经验分享出来,进而帮助更多跟我一样想进大厂的同行朋友们,希望大家可以拿到理想offer。

自我介绍

我是15年从华南理工大学毕业,一毕业就从事Android开发相关工作,一直到现在。在这5年的时间,我见证了移动互联网的“沧海桑田”,身边很多同事转行的转行,创业的创业,整个Android开发前景显得一片“萧条”。

如今,虽然Android已风光不再,但是“它”还是那个Android,还是那个我赖以生存、夜以继日陪伴着我的朋友。所以,我永远不会放弃它。

好了,感觉再说下去,大伙儿就该得为自己还在做Android焦虑起来了,让我们进入正题,虽然我没有拿到两个offer,但是阿里的那场面试我也走到了最后一面技术面,但没拿到offer,还是觉得挺可惜的。这场你们就当凉经看好了;

9.10 阿里凉经随笔

我一开始在7、8月的时候,是海投简历的,所以会接到了很多邀我面试的电话。虽然很多,但很多公司都是些小公司,创业公司,企业前景堪忧,薪资也非常低。

拒绝以后,在略微膨胀后等待中时间很快来到了9月10日,当天下午的2、3点钟,我正温习着面试题的时候,电话咚咚咚的响起,接听过后是个声音很好听的女生,她说她是阿里的HR,问我是不是投了我们公司的XXX部门的Android研发岗,我说是。她便问我晚上有时间没,要约我视频面试。我强忍激动回答道:“有的,有的”,于是晚上还特地沐浴净身,在晚上8点钟的时候开始了阿里的第一轮技术面试。

9.10 阿里一面:技术面(电话面)

  • 自我介绍
  • 学过哪些课程?操作系统了解吗?
  • CPU内部结构* 说一下操作系统里的缓存
  • HTTP里面有哪些方法
  • GET和POST区别说一下
  • HTTP中POST的方式有哪些?
  • 字节流和字符流说一下
  • TCP和UDP什么区别
  • TCP的字节流是什么机制
  • coding:手写一个循环队列数据结构(思路对了,但检验队列满时写错了,面试官指了出来,说了一下改正思路)
  • 线程里面sleep和wait什么区别(从方法所属类,调用的效果,是否释放锁答的)
  • sleep不释放锁和wait释放锁,底层怎么做的(没答出来...)
  • java引用类型(强 软 弱 虚)
  • JVM的gc什么机制(GC roots可达性)
  • 你怎么判断对象是gc roots对象(又懵了)
  • ==和equals区别* 重写equals怎么写
  • TCP握手连接确认号为什么要+1,不变不行吗?为什么?(又乱说的)

电话一面当时讲了大概一个小时,面试官在匆忙之中结束了面试。在我以为我自己要挂掉了时候,第三天的下午HR约我二面。

9.12 阿里二面:技术面(视频面)

  • 自我介绍
  • 项目介绍、技术难点
  • coding:二叉树根节点寻找target节点,返回所有路径(回溯,但出了bug,面试官说没时间了先问问题吧)
  • topK问题,海量数据找最大的100个(基于快排思路的partition、堆排序,结果一紧张,小顶堆说成了大顶堆...)
  • 堆的构建过程
  • java内部类有哪些
  • 内部类能访问外部的变量和方法吗* 双亲委派机制请说一下
  • HashMap了解吗,数据结构是什么?
  • HashMap的hash值和Object的hashcode()什么关系
  • 你说了红黑树如何保持自平衡?
  • 红黑树的着色过程是什么呢?
  • fail-fast机制说一下
  • ipv4地址分类(ABCDE,说了每一类IP的分段)
  • HTTPS的连接过程说一下吧(说了SSL的加密过程,包括证书CA、非对称和对称加密等)

二面总体感觉还不错,90%都说到点上了。过了半个小时,HR打电话过来问我考虑来杭州工作吗?因为我是湖南人嘛,之前大学毕业后就在杭州待了3年,这两年因为家里催婚的问题,我才回了长沙。在考虑很久后我跟说她我两天后,给你消息,结果两天后,我再一次的去了杭州。

9.20 阿里三面:技术面(现场面)

HR小姐姐跟我说,到了杭州以后跟她说,约三面的时间。我是15号的中午到的杭州,放下东西后眯了一会儿,晚上跟HR打了电话,约了20号的面试。不知道是不是太久没有现场面试了,面试的时候我一直很紧张,导致我知道的面试题也回答的磕磕巴巴,这可能是我遗憾错过阿里的重要原因吧。

  • 项目深挖
  • ARouter路由原理
  • 如何管理过多的路由表?
  • 看视频的时候网络请求很慢怎么优化?
  • 说说HTTP3.0有什么改进?
  • App上线后用户使用时卡顿怎么查看是什么原因?

9.26 网易热经随笔

本来阿里给我挂了以后,想着回长沙的。但是越想越不服气,索性就把简历投了杭州的所有互联网大厂。功夫不负有心人,在9月26号这天,我终于等到了网易的面试邀约。在经过四次与面试官的技术交流后,我顺利的拿到网易的offer。

网易一面

  • 自我介绍
  • 常用的数据结构
  • 介绍HashMap
  • 安全的Map有哪些
  • Java中有哪些锁
  • 自旋锁有了解吗?
  • 介绍可重入锁、不可重入锁
  • 设计模式有哪些
  • 单例模式分哪些?懒汉式分哪些?描述一下
  • JVM内存模型
  • HTTP使用Socket实现?需要用到哪些类?哪些方法?
  • HTTP请求报文分哪些部分?
  • HTTP请求有哪些方法
  • 滑动窗口中数据分几类
  • JSON数据你怎么处理(Map)?
  • 项目中遇到的什么问题?怎么解决的?
  • 有什么想问的?

网易二面

  • 自我介绍
    接下来所有的提问,全根据简历中的掌握技能提问
  • 介绍垃圾回收算法
  • OOM
  • MySQL调优你怎么用的
  • 介绍常用的非公平锁,公平锁
  • 什么是公平锁和非公平锁
  • synchronized锁普通方法和静态方法的区别,静态方法怎么锁的
  • 类的加载机制
  • Class类有了解吗?
  • 介绍一下HashMap
  • String类型的key放到HashMap中,如何提高效率
  • new String()占用多少个字节
  • 进程和线程的区别
  • CPU调度算法
  • 谈微信小程序(简历上写的内容)
  • DOS攻击有了解吗
  • 反问

HR面

  • 为什么想进网易
  • 说一个你最有成就感的项目
  • 做之前做过调研吗
  • 遇到什么问题,怎么解决的
  • 说一件自己处理团队矛盾的例子
  • 反问

两次面试感悟:阿里+网易

人生之事,幸之有三;有失、有舍、有得。或许某些人的放弃,将会成就你更好的选择!

虽然阿里面试官在三面时挂掉了我,却不料我最终拿到网易的offer,虽然就公司来说,网易和阿里有一定的距离,预期薪资也不及阿里,但是网易的岗位方向是自己比较擅长和喜欢的,做游戏架构开发这一块,而且整体感觉公司氛围,网易这边也会让自己更自在一点。

目前在网易入职一个个多月了,阿里的凉经和网易的热经分享出来是为了帮助更多跟我一样想进大厂的同行朋友们,能在面试之前有个参考物。一些不该趟的坑尽量不要趟,最后希望大家可以拿到理想的offer。

面试题资料参考

Andorid面试准备指南及大厂真题解析:Android面试复习知识点参考.github

面试前推荐书籍

任玉刚的《Android开发艺术探索》

《Android源码设计模式》

《深入理解Java虚拟机》

《Java编程思想》

推荐阅读更多精彩内容