前言
本人毕业,目前从事Android开发工作已经3年啦。
就是尘世间一个迷途小开发,二流程序员,居身于小城市,最终也是考虑到发展前景的局限性,趁着自己还年轻,于是毅然裸辞,用一个月时间面试+复习+总结,最终拿到了抖音Android面经,成功斩获offe,将自己的面试经验分享给大家,希望对大家有所帮助。
面试分享:
一面:
1.activity和service怎么通信
2.因为扯到了跨进程通信,就让我说一下安卓上有什么跨进程的通信方式
3.说到了管道,让我说一下在Android的时候会用到管道吗
4.Java两个整型相加怎么知道有没有溢出
5.Java怎么停止线程
6.假如有4个线程同步开始,其中第4个线程要等前面三个线程执行完进行些统计操作,要怎么操作呢。
7.如果不通过使用Java的并发包的现成类库来实现一个CountDownLatch,怎么实现?
8.那么使用你这个CountDownLatch的这3+1个线程,一共需要几个锁呢?
9.知道大顶堆和小顶堆吗,一个数组建堆,时间复杂度是多少呢?
10.在堆中找指定的一个元素复杂度是多少?
11.看你简历上也有写网络方面的知识,https的过程说一下
二面:
1.Unicode和ASCII的区别
2.Unicode有哪些种类?Java是哪种?
3.json这种格式知道吗,是怎样的,有什么用?
4.序列化除了json还有什么可以使用?
5.说说Android上的序列化?
6.Java的serializable有个Id,你知道是有啥用的吗?
7.深拷贝浅拷贝说说?
8.Object的hashcode()用来干嘛,怎么自己实现hashcode?
9.JNI讲讲?
10.一个a包里的B类的c方法,cpp代码中的方法一定要a_B_c()这样吗
11.Java的泛型讲讲,有啥用?咋实现的
12.在什么情况下可以在运行时获取泛型参
13.上界通配符和下界通配符讲讲
14.两个方法,一个方法的参数是泛型的,一个参数是正常的类(如String),会怎么样
15.输入网址到返回ip的过程】
16.假设你你缓存的ip地址过时了,怎么办
17.你认为DNS机制是怎么解决这个问题的,你可以尝试参考http的缓存机制想想
18.广播有几种,有序和粘性讲讲
19.注册广播的方式,你觉得静态注册广播这个是什么时候执行的呢
20.本地广播
21.线程进程区别
22.讲到内存资源,线程有什么数据是私有的
23.算法:二叉树的右视图
24.算法:两个栈实现队列
25.讲讲工作项目遇到的问题
26.有什么想问我的:
三面:
自我介绍
内核态用户态的区别
用户态可以访问内核态的内存吗,你说的一些有风险的指令,具体是怎么阻止用户态程序去执行有风险的指令的
既然用户态不可以访问内核态的内存,那么在做一些比如网络连接的操作的时候肯定需要内核态内存,用户态程序怎么做到使用内核态内存的
说到跨进程通信方式,你知道有什么跨进程通信方式吗?
你说到的共享内存,管道,消息队列,binder他们之间有什么区别吗?
你说到广播、内容提供器也有使用binder与AMS通信,那他们与binder之间有什么区别吗(广播、内容提供器的实质是不是就是binder)?
为什么要写这样一个测速的程序?
两个Activity,一个显示商品列表,一个实现商品详情页,在商品详情页点了关注之后,怎么使得返回商品列表之后也更新了关注状态呢?
你说的发布订阅模式,你知道有什么框架使用了这个设计模式吗?
假如两个Activity数据量比较大呢,要更新相当多的东西呢?
你把model设置为单例的话,那这个列表不断下滑,加载更多内容,最后导致占用相当多的内存怎么办?liveData、ViewModel你可以了解下**
算法题:转成cn.toutiao.www
有什么想问我的?(在头条工作的体验?这个你可以问hr)
四面:
你是哪里人?为什么选择投上海的岗位?除了上海,还有什么意向的城市吗?为什么不喜欢北京?上海也是这样啊?
问专业。与程序相关的课程有多少?有学计算机组成原理、计算机网络吗?
除了看书以外学习途径?你在安卓的群上一般讨论什么东西?印象深刻的是什么?
你这个在wifi的部门不是专门做安卓的吧?有没有安卓方面导师?都是靠你自己摸索的吗?项目有几个人在负责,都是你在负责吗?
因为什么而接触安卓?你在这个团队里负责什么角色?贡献了多少代码比如有多少页面是你写的?
有没有什么社团之类的让你接触安卓?
有什么想问我的?
HR面:
你认为你前面的面试表现怎么样?
你觉得抖音(还是字节跳动来着)怎么样?
你提到技术驱动型,你认为怎么样才是技术驱动型公司?
你提到你是抖音的用户,但是使用频率不高,是因为什么,因为抖音的内容质量不好吗?
你提到抖音是音视频相关,你对音视频开发是比较感兴趣吗?
之前工作中有没有遇到什么较大的问题?这个问题是什么原因有没有探究?
工作期间有没有遇到什么比较大的挫折?
如果通过了面试,你什么时候可以过来上班?
总结:上海抖音经历4面技术面+ hr面。10.25发的意向书
面试题总结
更多大厂面试题,vx扫描二维码免费领取
简历的制作
简历的作用是展示自己的亮点给面试官,让面试官可以在短时间内迅速了解我们。简历一定要把自己的亮点写上去,展示自己的能力。说人话就是:告诉面试官自己有多牛叉,这不是表现我们谦虚的时候。不管是项目亮点、还是个人技能,都通通写上去。技能点描述要精准,不要模糊。写上简历的内容一定要是自己掌握的内容。例如:
面试建议
1.有耐心且主动
面试不要着急着去问结果,一般在hr面的时候,她的态度多少能够猜个七七八八的,如果等上一周还没有通知,那就可以主动去问了。
2.刷题是为了提升自己的运气
运气在面试过程中是非常重要的,刷题的目的很简单,除了巩固我们所掌握的,另一个就是为了能提高在面试中我们的运气,如果能够问到一样的题是再好不过了,当然这个办法是适用于职级中低岗位。
3.掌握基础,注意深度
大厂面试最喜欢问两类问题,一类是基础,另一类就是深度。基础部分,无非就是我们所掌握的技术基础内容,基本上只要是有准备的都没有太大的问题。另一部分就是深度问题,大多涉及到自己之前的工作、项目,面试官所问的问题不仅仅是停留在表面那么简单,背后的原理是什么才是面试官想要问的。
4.刷面试题
由于文章篇幅有限,文档面试资料内容较多,有需要完整版可以扫我们的官方二维码,希望能够共同进步,共勉!
最后
这也我在工作、面试中学习并总结到的一些知识点, 都是一些比较典型的、常被问到的问题。如果你平时没有注意去总结的话,那么当你面试被问到的时候可能会是一脸懵圈,就算这个问题你知道怎么回事,但是你平时没有认真总结, 你也可能会出现逻辑混乱的情况,从而错失工作机会。
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
如果觉得《面试官:连这些问题都不知道?就想要50k?》对你有帮助,请点赞、收藏,并留下你的观点哦!