面试官:连这些问题都不知道?就想要50k?

前言

本人2016年毕业,目前从事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.有什么想问我的:

三面:

  1. 自我介绍
  2. 内核态用户态的区别
  3. 用户态可以访问内核态的内存吗,你说的一些有风险的指令,具体是怎么阻止用户态程序去执行有风险的指令的
  4. 既然用户态不可以访问内核态的内存,那么在做一些比如网络连接的操作的时候肯定需要内核态内存,用户态程序怎么做到使用内核态内存的
  5. 说到跨进程通信方式,你知道有什么跨进程通信方式吗?
  6. 你说到的共享内存,管道,消息队列,binder他们之间有什么区别吗?
  7. 你说到广播、内容提供器也有使用binder与AMS通信,那他们与binder之间有什么区别吗(广播、内容提供器的实质是不是就是binder)?
  8. 为什么要写这样一个测速的程序?
  9. 两个Activity,一个显示商品列表,一个实现商品详情页,在商品详情页点了关注之后,怎么使得返回商品列表之后也更新了关注状态呢?
  10. 你说的发布订阅模式,你知道有什么框架使用了这个设计模式吗?
  11. 假如两个Activity数据量比较大呢,要更新相当多的东西呢?
  12. 你把model设置为单例的话,那这个列表不断下滑,加载更多内容,最后导致占用相当多的内存怎么办?liveData、ViewModel你可以了解下**
  13. 算法题:www.toutiao.cn转成cn.toutiao.www
  14. 有什么想问我的?(在头条工作的体验?这个你可以问hr)

四面:

  1. 你是哪里人?为什么选择投上海的岗位?除了上海,还有什么意向的城市吗?为什么不喜欢北京?上海也是这样啊?
  2. 问专业。与程序相关的课程有多少?有学计算机组成原理、计算机网络吗?
  3. 除了看书以外学习途径?你在安卓的群上一般讨论什么东西?印象深刻的是什么?
  4. 你这个在wifi的部门不是专门做安卓的吧?有没有安卓方面导师?都是靠你自己摸索的吗?项目有几个人在负责,都是你在负责吗?
  5. 因为什么而接触安卓?你在这个团队里负责什么角色?贡献了多少代码比如有多少页面是你写的?
  6. 有没有什么社团之类的让你接触安卓?
  7. 有什么想问我的?

    HR面:

  8. 你认为你前面的面试表现怎么样?
  9. 你觉得抖音(还是字节跳动来着)怎么样?
  10. 你提到技术驱动型,你认为怎么样才是技术驱动型公司?
  11. 你提到你是抖音的用户,但是使用频率不高,是因为什么,因为抖音的内容质量不好吗?
  12. 你提到抖音是音视频相关,你对音视频开发是比较感兴趣吗?
  13. 之前工作中有没有遇到什么较大的问题?这个问题是什么原因有没有探究?
  14. 工作期间有没有遇到什么比较大的挫折?
  15. 如果通过了面试,你什么时候可以过来上班?

总结:上海抖音经历4面技术面+ hr面。10.25发的意向书

简历的制作

  • 简历的作用是展示自己的亮点给面试官,让面试官可以在短时间内迅速了解我们。
  • 简历一定要把自己的亮点写上去,展示自己的能力。说人话就是:告诉面试官自己有多牛叉,这不是表现我们谦虚的时候。不管是项目亮点、还是个人技能,都通通写上去。
  • 技能点描述要精准,不要模糊。
  • 写上简历的内容一定要是自己掌握的内容。

例如:
面试官:连这些问题都不知道?就想要50k?_第1张图片

面试建议

1.有耐心且主动

面试不要着急着去问结果,一般在hr面的时候,她的态度多少能够猜个七七八八的,如果等上一周还没有通知,那就可以主动去问了。

2.刷题是为了提升自己的运气
运气在面试过程中是非常重要的,刷题的目的很简单,除了巩固我们所掌握的,另一个就是为了能提高在面试中我们的运气,如果能够问到一样的题是再好不过了,当然这个办法是适用于职级中低岗位。
面试官:连这些问题都不知道?就想要50k?_第2张图片

3.掌握基础,注意深度
大厂面试最喜欢问两类问题,一类是基础,另一类就是深度。基础部分,无非就是我们所掌握的技术基础内容,基本上只要是有准备的都没有太大的问题。另一部分就是深度问题,大多涉及到自己之前的工作、项目,面试官所问的问题不仅仅是停留在表面那么简单,背后的原理是什么才是面试官想要问的。

4.刷面试题
面试官:连这些问题都不知道?就想要50k?_第3张图片

由于文章篇幅有限,文档资料内容较多,本可以提供链接下载,但无奈容易被和谐,所以全部存档,需要这些文档这里的朋友,可以点击我的【Gitee】,希望能够共同进步,共勉!

最后

这也我在工作、面试中学习并总结到的一些知识点, 都是一些比较典型的、常被问到的问题。如果你平时没有注意去总结的话,那么当你面试被问到的时候可能会是一脸懵圈,就算这个问题你知道怎么回事,但是你平时没有认真总结, 你也可能会出现逻辑混乱的情况,从而错失工作机会。

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

你可能感兴趣的:(android)