Android技术知识

学习三个月4个offer!深圳,5年+开发.本科学历.斩获字节o

2020-12-18  本文已影响0人  孙江_2fe4

祝大家鸿运当头

我的情况

学历:本科
入职公司:字节跳动
所在城市:深圳
工作年限:5年+

在8月份的时候我辞职了(不是裸辞哦),在家学习了差不多3个月的时间,在今年2020年12月拿到了4个大厂offer,oppo、腾讯、字节、虾皮,在这里也希望你们越来越好,争取早日找到自己满意的工作(年薪过百万哦)。

这篇文章我会把我面试的经历(技巧+面试题)分享出来,目的是给秋招的小伙伴们一些建议,避坑跳槽小技巧,以及面试大厂需要注意的!

我和朋友对话

面试题分享

一面 35min

  1. 自我介绍
  2. 项目相关:
    • ①ARouter路由框架:有没有看过源码?分析一下。如果是你来设计,你会如何设计路由跳转?
    • ②Retrofit网络框架:看过源码吗?简单说下。
    • 项目难点,如何解决?
  3. JVM和DVM的区别,ART与DVM的区别。
  4. 有几种情况会产生ANR,ANR产生的原因
  5. Android控件为什么不能加锁?
  6. 线程通信:
    • ①handler简单讲一下
    • ②Asyntask的缺点是什么?为什么官方现在不推荐使用。
    • ③说一说handlerThread
  7. Binder机制,AIDL简单说一下。
  8. 如果设备内存只有1G,加载一张20G的图片,需要怎么操作?
  9. JVM GC部分:

一面总结: 一面面试官人真的非常好,特别喜欢他感谢他!总体上来说,非常注重安卓基础,安卓问的比较多。我准备了很久的计算机网络和操作系统居然没问。。。

二面 38min

  1. 自我介绍
  2. 项目(项目怼了挺久的,一直深挖。建议大家要非常熟悉简历上的项目,一些细节也要注意到,这个环节差点被怼哭🤣)
  3. 有没有了解过插件化?插件化和组件化什么区别?
  4. Applicatipn Context在什么情况下不能使用。(面试官提示dialog了我还不会,这个需要重点注意一下)
  5. 加载一张特别大的图片,该如何操作?(一面面试官也问了这个问题!回答的特别流畅哈哈哈)
  6. 一定要在主线程中更新UI吗?能不能在子线程更新?(这个我有一点印象,最后是面试官疯狂提示才想出来的surfaceView)
  7. LRU的底层数据结构?双向链表如何提高查询效率?
  8. kotlin是如何兼容Java的(这个我真不会,没想到连这都问)
  9. 你觉得你最大的优势是什么?(balabala讲了一堆,主要讲自己的学习能力强,团队合作能力强)
  10. 反问环节

二面总结: 二面主要是围绕项目,然后面试官问的特别特别深。相比之下,一面比较注重广度,考察你对整个安卓体系的知识。二面比较注重深度,考察你对安卓底层源码以及框架源码有没有深入的研究。

hr面 15min

  1. 自我介绍
  2. 实习在做什么项目?有没有遇到什么困难,如何解决?
  3. 除了实习,有没有其他安卓项目,如何分工。和组员有矛盾如何解决?
  4. 你觉得你应聘这个岗位最大的优势是什么?
  5. 反问环节

hr面总结:其实hr面大家基本上如实回答就可以了,hr只是想要通过聊天对你有一个基本的了解,不要回答的太偏激太离谱就行。最终刷人也是综合一二三面的成绩排序


腾讯

一面

1.mmap + native 日志优化?

2.广播和 EventBus 的区别?

3.常用设计模式你了解哪些?

4.跨进程通信有哪些?

5.简单讲讲 binder 驱动吧?

6.跨进程传递大内存数据如何做?

7.说说 ConcurrentHashMap 的实现原理说下,初始化大小是多少?

8.启动优化怎么优化?

9.你写的 rxpay 和 rxlogin 具体怎么实现的?

10.kotlin + fullter 方面的

二面

1.单例设计模式都写写,静态内部类是怎么保证线程安全的?

2.synchronized 底层实现原理,ReentrantLock 公平锁与非公平锁。

3.主线程等待所有线程执行完毕,再执行某个特定任务怎么实现?原理和源码看过没?

4.自定义 view 的一般流程,要注意些什么如何优化,点击事件和长按时间分别是怎么实现的?

5.四种启动模式,在源码分析中的原理是怎样的?

6.讲讲 bindService 的过程,你当初是怎么优化后台服务进程的?

7.开发中你都用到了哪些设计模式?说说当时具体的场景。为什么你要用方法工厂,另外两种呢?

8.RxJava 在使用过程中碰到了某些不友好的错误一般怎么解决?发现了内存泄露一般怎么解决分析,有没有碰到过系统服务内存泄露的问题?

9.你们用的 okhttp ?那你有没有做过一些网络优化呢?比如弱网环境。

10.给你个数 1 吧,比如 1000011 里面有几个 1 ?

11.快排了解不?最坏的情况是怎样?如果有大量重复数据怎么优化?

三面

1.讲讲 handler 的底层实现原理?

2.说说你做的日志记录优化?

3.你看过 binder 驱动的源码,说说他的内存映射过程,说说客户端等待服务端处理返回的流程,如果要跨进程传递大内存数据你具体会怎么做?简单写一写吧。

4.在公司做过哪些优化?

5.过程中遇到的一些最难解决的问题?

6.提到了动态修复替换加载 so ,那你知道怎么修复 class 吗?怎么修复资源呢?

7.还有什么要问的?


字节跳动

一、二面

时长:各1个小时,中间间隔有15分钟

手写代码(运气好,问的不难,几个都快速写出来了):

三面

时长:50分钟,可能因为是终面吧,技术问题不是很多


复习知识

工作这么久要重新再去面试肯定是要将自己的知识储备重新拿出来,要把各个知识点复习到位,需要通过各个方式,选择自己最习惯的。无论是读电子书籍还是观看视频都是可以的,但要记得做好自己的学习笔记,能够起到总结的作用,再去复习起来就特别清晰了。

每个知识点都有左侧导航书签页,看的时候十分方便,需要的记得帮忙点赞评论支持一下,评论区,评论【666】即可来获取下面的大厂Android面试解析+技术知识点笔记”锦集了

01 Android快速面试指南

02 Android从入门到架构成长笔记

就拿我们移动开发人员来说,从初级程序员进阶到高级程序员,从初级架构师到资深架构师,应该如何构建自己的知识体系,成为移动架构师需要掌握哪些技能?

13年java转Android开发,在小厂待过,也去过华为,百度等,去年四月份辞职现在进了字节跳动。等大厂待过也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

我们今年整理了一份阿里P8级别的Android架构师全套学习资料,特别适合有3-5年以上经验的小伙伴深入学习提升。

主要包括腾讯,以及字节跳动,华为,小米,等一线互联网公司主流架构技术。如果你有需要,拿走记得刷不要收藏夹里吃灰。

点击我的:【GitHub】免费领取Android高级教程和面试题PDF;需要的点击查看自行下载保存!

03 Android从入门到精通逆向学习视频

推荐一个B站up主,里面有Android系列学习视频,专题分类!
实战MVVM和Jetpack的完美结合让页面开发不再烦恼
1.什么是插件化
2.插件化能解决的问题及与组件化的区别
3.常用插件化框架对比
.
.
.
13.手写实现插件的资源加载

04小白进阶必刷书籍

感觉看书对提升非常明显,当然了还是要看书的内容干货多不多,这里分享下我看过的书:

自行下载直达领取链接:【点击资料下载

最后祝大家一切顺利,2021越来越好,拿到属于自己满意的offer!

上一篇 下一篇

猜你喜欢

热点阅读