美文网首页Android技术知识
学习三个月4个offer!深圳,5年+开发.本科学历.斩获字节o

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

作者: 孙江_2fe4 | 来源:发表于2020-12-18 21:25 被阅读0次

祝大家鸿运当头

我的情况

学历:本科
入职公司:字节跳动
所在城市:深圳
工作年限: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部分:
  • 为什么不使用引用计数法而是使用可达性分析法
  • 各种GC算法的优缺点,分代回收算法
  • 内存泄漏问题,在Android一般如何定位?有使用过什么工具解决吗?

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

二面 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分钟

  • JVM GC:标记算法、回收算法、垃圾收集器 走一套
  • ThreadLocal实现原理,map中的key value是什么
  • static块中能否调用实例方法
  • concurrenthashmap中是如何实现线程安全的,concurrenthashmap读的时候不加锁,那如何保证读的一致性 (Node数组用volatile修饰)
  • HashMap外部加锁 与 使用concurrenthashmap时两者效率相比如何 (全表加锁 vs bucket加锁)
  • NIO中buffer中在传输文件时如何工作
  • P父类有两个子类A B,A先加载了D.class,B再加载D.class,加载完成后的class D是同一个class吗(可能是这个意思,问题我都没听明白)
  • 如何创建一个注解
  • Executors中四个生成线程的实现类有什么特点,适用于什么场景
  • 一个方法中有A a = new A();这么一条语句,方法执行完后A的实例化对象在GC时能否被回收掉
  • finalize相关,调用finalize一定会将对象销毁吗?finalize一定会仅执行一次吗?
  • synchronized中锁的几种状态
  • 泛型的实现原理

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

  • 几种单例模式,区别
  • 生产者消费者模型
  • 二叉树中序遍历

三面

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

  • 说一下你对"Android开发"这份工作的理解,工作难点在哪里
  • 平常多线程部分用过什么,回答:线程池
  • 为什么要用线程池,为了解决什么问题,有什么好处
  • 如果让你设计一个线程池,你怎么设计,写代码(/(ㄒoㄒ)/~~)。写了一会给面试官说可能会花很久时间,面试官大致看了下我已经写了的,然后说那你给我介绍下你的设计思路,代码不用写了。
  • notify 和 notifyAll 有什么区别
  • Git中 rebase 和 merge 有什么区别
  • 知道什么设计模式?怎么知道这些设计模式的,是有专门看过这方面的书吗?
  • 一个比较简单的算法题,但我答的很shit~~~ 题目我都不好意思说了,当时脑子短路。。
  • leader给了你一个可能需要两周才能完成的工作,但是leader只给你一周时间,你怎么来做这件事情
  • 诸如毕业在哪工作,想做ios还是android等问题

复习知识

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

每个知识点都有左侧导航书签页,看的时候十分方便,需要的记得帮忙点赞评论支持一下,评论区,评论【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小白进阶必刷书籍

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

  • 《Android自定义控件入门和实战》
  • 《大话设计模式》
  • 《Andorid设计模式源码解析》
  • 《深入理解JVM》
  • 《Android进阶解密》
自行下载直达领取链接:【点击资料下载

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

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/mytfnktx.html