6年菜鸟开发面试字节跳动安卓研发岗,知乎上已获万赞

上周喜提oppo面试offer,本人在深圳,有4年多的Android项目经验,普通本科学历。
面试是相互相在,OPPO给我的印象确实如其核心价值观所说:本分。

一面、部长面和HR面都蛮顺利(一千个人可能要了一百左右,但竞争没有想象中激烈,说白了提高自己的核心竞争力才是硬道理)

签的是年薪30W,年终奖另算。我面的是安卓开发岗位。

阿里面经

面试形式是电话面试,算法是面试官会给你邮箱发一个链接,然后在那个网站里面就可以同步共享屏幕,网站类似于一个编辑器,不能编译,写了代码面试官会看,交流还是在电话里面完成。

一面(1小时)

  • 重载与重写

  • final修饰符

  • 抽象类和接口

  • GC机制、原理

  • finalize( )的理解

  • GC机制如何判定哪些对象需要回收

  • GCRoots有哪些

  • 四种引用

  • 垃圾收集算法

  • Hash Map与Hash table的区别

  • 怎么让Hash map线程安全

  • Thead Loocal了解吗?

  • 线程同步的几种方式

  • 加锁与synchromized区别

  • Volatile 了解吗

  • JVM内存模型

  • leakCanary内部机制

  • Handler内部机制

  • MNC与MVP的区别,以登陆模块为例讲一下每层的工作

  • EventBus的原理

  • 布局优化 include.merge,viewStub

  • view的绘制流程,自定义View

  • 时间分发机制的区别

  • JVM与Dalvik区别 (Android虚拟机)

二面(50分钟)

  • 自我介绍

  • abstract和interface区别

  • int和Integer区别

  • 四种引用

  • Java里面int、char、long的字节数

  • 线程的创建方式

  • RxJava的优缺点

  • EventBus(???不会)

  • 从网络上加载一个10M的图片,要考虑哪些

  • http与https

  • http 1.0 和 http 2.0之间的区别

  • 设计模式准则(全忘了)

  • Handler机制

  • 算法:判断一个链表是否回文

  • 算法:给定一个数组,将数组里面的每一位向后移动k位

三面(40分钟)

  • HashNlap与Hashtable的区别

  • Hashtable怎么实现了线程安全,效率低。为什么?

  • Android线程池通信的方式

  • TCP三次握手

  • 内存泄漏的几种情况

  • 进程的优先级

  • 非静态内部类为什么持有外部类的引用

  • 在JVM中非静态寸内部类的,class是单独的还是在外部类的class中?内部类的class文件名为“外部类¥内部类.class”

  • Activity启动模式

  • Activity启动流程

  • Handler机制?为什么会存在内存泄漏?

  • MVP是怎么实现的

  • Glide原理?怎么实现缓存

面试心得

1. 算法题怎么答

面试官可能会问到你闻所未闻的算法,这时候你不应该自己瞎想,而是先和面试官把问题讨论清楚。要知道,通过沟通弄明白复杂的问题也是一种能力,在和面试官交流的过程中,不仅仅可以搞清楚题目真正的意思是什么,还可以展现自己良好的交流沟通能力。所以千万不要因为紧张或者害羞而浪费这次大好的机会。有些题目似曾相识,但是暂时没有思路。这时候不妨告诉面试官,给我一些时间思考这个题。然后不要急,不要慌,就当他不存在,拿出纸和笔慢慢算(这充分说明了面试戴耳机的重要性)。你一定要坚定一个信念:“任何一道稍微有难度的算法题,除非做过,否则一定是需要时间想的”。所以,合理的安排思考时间吧。如果十几分钟都想不出来,可以直接放弃。

2. 遇到不会的问题怎么处理

这个问题有可能是面试官故意说得含糊不清,考察你的交流能力,也有可能是无意的,或者是你的理解方式出现了偏差。不管是以上哪种问题,你都应该先和面试官交流,直到你搞懂了面试官要问你什么,而不是按照自己的理解说了一堆无用的东西。举个例子,面试官可能会问了一道算法题:“如何判断两个无限长度的链表是否有交点?”。对于“无限长度”可以有不同的理解,如果真的是有无穷多个节点,那显然这个问题是无法解决的。但如果链表仅仅是有环,那么还是可以解决的。如果面试官的本意是链表有环,但你错误的理解成了无穷多个节点,那么必然会导致无法回答这个问题。而且这并非能力不足,而是属于交流沟通方面的失误,这也正是我想分享的“技巧”。

3. 遇到真的不会的问题怎么处理

遇到不会的问题果断承认啊。如果是基本问题,比如问你哈希表怎么实现,你说不会,那么这次面试可能就悬了。如果是有一定难度的问题,那么你承认不会,也是一种明智之举,毕竟人无完人,一个问题不会并不能全盘否定一个人的能力。

4.心态

面试的时候一定要控制好心态,一个好的心态往往更容易拿到offer。

尾声

开发是需要一定的基础的,我是08年开始进入Android这行的,在这期间经历了Android的鼎盛时期,和所谓的Android”凉了“。中间当然也有着,不可说的心酸,看着身边朋友,同事一个个转前端,换行业,其实当时我的心也有过犹豫,但是我还是坚持下来了,这次的疫情就是一个好的机会,大浪淘沙,优胜劣汰。再等等,说不定下一个黄金浪潮就被你等到了。

这是我在这行工作10几年积累的一些资料,如果还想继续在这行业走下去的,或者现在打算跳槽,可以**私信【学习】**我愿意把资料免费分享给大家。
或者直接点击下面链接领取
Android学习PDF+架构视频+面试文档+源码笔记

  • 330页 PDF Android核心笔记

  • 几十套阿里 、字节跳动、腾讯、华为、美团等公司2020年的面试题

  • PDF和思维脑图,包含知识脉络 + 诸多细节

  • Android进阶系统学习视频

7G-1620133015506)]

[外链图片转存中…(img-02jpNiiA-1620133015508)]

  • PDF和思维脑图,包含知识脉络 + 诸多细节

[外链图片转存中…(img-TXdPsvrs-1620133015510)]

  • Android进阶系统学习视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
From the Back Cover Explore what Flutter has to offer, where it came from, and where it’s going. Mobile development is progressing at a fast rate and with Flutter – an open-source mobile application development SDK created by Google – you can develop applications for Android and iOS, as well as Google Fuchsia. Learn to create three apps (a personal information manager, a chat system, and a game project) that you can install on your mobile devices and use for real. You will begin by getting a solid foundation of Flutter knowledge, and building on it immediately by constructing two more traditional productivity apps.. You will also learn to create a game, enabling you to see a whole other perspective on what Flutter can do. In addition to building these apps, you'll have the benefit of reviewing real-world issues you might encounter, along with ways to deal with them through tips and tricks, all designed to make your Flutter experience that much more productive and, frankly, fun! Practical Flutter will leave you with a solid grasp of how to build apps with Flutter, and springboard into creating more advanced apps on your own. By the time your journey through this material concludes, another larger one will begin as you springboard, well-prepared, into the larger world of Flutter development, tackling any project that comes your way with aplomb. Practical Flutter is a learning adventure you won't want to miss. About the Author Frank Zammetti is the author of 11 Apress titles on a variety of web and mobile development topics. He has over 25 years of experience as a developer. You can find him on Twitter @fzammetti.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值