前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >太强了!Android开发4年网易三面后拿下offer定薪25k*14.5,涨薪50%

太强了!Android开发4年网易三面后拿下offer定薪25k*14.5,涨薪50%

原创
作者头像
Android技术干货分享
修改2021-04-13 10:03:47
1.2K1
修改2021-04-13 10:03:47
举报
文章被收录于专栏:Android技术分享Android技术分享

我的情况

本人很愚笨,坚持梦想才是最重要的,最后你会得到应有的回报。 之前面经中的大神说道“重要的事情说三遍,心态最重要,心态最重要,心态最重要”。

在这里我就不谈心态了,说说硬件,同样重要的事情说三遍

基础最重要。 基础最重要。 基础最重要。

当你的基础知识好到让面试官怎么都问不倒的时候,那你离offer就很近了。

好了,铺垫已经做好了,接下来就直接上面试干货了。

一面

1.算法题:123 -> 321 超出Integer最大值范围,正负数怎么处理 2.hashmap put()底层原理,发生冲突时,如何去添加(顺着链表去遍历,挨个比较key值是否一致,如果一致,就覆盖替换,不一致遍历结束后,插入该位置) 3.Handler内存泄漏与Looper 4.Message为什么没有被回收 5.手写单例模式,volatile作用 ,为什么要双重判空,作用是什么,一句话概括 6.为什么要泛型擦除,写一个泛型方法和一个泛型类 7.一张图片加载到内存,如何计算图片占用内存的大小,ARGB8888与ARGB565有什么区别 8.APK打包流程 9.四种引用方式,他们之间的区别,什么时候用到弱引用

总结:

1.算法题最主要的目的是得出结果,不要总是纠结于过去刷过题的思路,特别是当时的思路无法理清时,就应该立马变换一种思路去解决,哪怕是时间复杂度和空间复杂度都比较高,而不是迟迟卡在那里。 2.将技术点总结成简单的话语,提炼技术要点

二面

1.线程池线程是如何保持线程不被回收的?在for循环里一直循环,循环体内会有take方法阻塞?

2.线程可以多次调用start吗? 会出现什么问题? 为什么不能多次调用start?

3.RecyclerView是怎么优化的

4.MVP是如何实现的,他们之间的关系和职责

5.MVVM是如何实现的? ViewModel的底层原理

6.热修复框架底层的原理,Tinker,美团的

7.pid与uid的区别

答:pid是进程ID,PID是进程的身份标志,系统给每个应用分配独一无二的PID(一个应用可能有多个进程,每个进程有唯一的PID) 进程终止后PID会被系统回收,再次打开应用会重新分配一个PID。 UID在linux中是用户的ID,用于权限的管理。在android中,由于android是单用户系统,所以uid被用于实现数据共享。

8.你们的项目架构是怎样的?

9.线程IO密集型和CPU密集型区别及线程数的设置

答:CPU密集型任务:在一个任务中,主要做计算,CPU持续在运行,CPU利用率高,具有该特点的任务称为CPU密集型任务。 IO密集型任务:在一个任务中,大部分时间在进行I/O操作,由于I/O速度远远小于CPU,所以任务的大部分时间都在等待IO,CPU利用率低。 CPU密集型任务:线程数为CPU核数。几个线程可以并行执行,不存在线程切换开销,提高CPU利用率,减少线程切换性能损耗。 IO密集型任务:线程数为CPU核数的2倍,在线程进行I/O操作时,其他线程可以继续使用CPU,提高CPU的使用率。

三面

1.简单自我介绍 2.项目结构,用到了哪些技术? 3.过往经历 4.为什么想换工作? 5.最近看的项目,用的什么技术? 6.北京市2个月摇一次号,摇中的概率是3000分之一,请问需要摇多久,概率能达到百分之50? 7.抛一枚硬币,正反面的概率各占50%,请问,连续两次反面的概率是多少? 正正,正反,反正,反反 ,出现的概率各占四分之一。

面试总结

还是那句话,基础最重要。开发年限和技能固然重要,然而最重要的还是基础牢固,并且思维要灵活,面试官喜欢观察你的反应能力。记住面试官很忙,他们基本不会跟你唠闲嗑,除非你很厉害没啥可问的了,所以回答问题之前一定要分析问题背后他们想了解你什么。如果面试官就是问的很模糊,分析不透,大可直接问面试官你想知道什么,这是没有问题的。

自己对于互联网有一些小小的见解:随着资本的冷却,整个互联网市场也逐渐的冷静下来。Android应用开发从一开始能说几个四大组件的名词,能随便写个监听事件,就能拿到高达上万的月薪的时代了。归根到底并不是工作难找了,而是Android应用开发工程师这个职位已经趋于正常,再也不是没什么技术也能拿高工资的香饽饽。当然这个也不是绝对的,对于中高级的开发人员来说,市场还是比较缺少的,尤其是知名企业对于招聘员工来说,不仅要求有过硬的技术,还要求有高素质,好的教育背景等等。总的来说,高工资可以给你,但是前提条件是你要足够优秀,或者说让面试官觉得你很优秀。

其实面试过程就是一个把你自己推销给别人的过程,对于我们来说就是要让面试官感觉你技术好,有培养价值。感慨有点多了,还是来点干货吧,大概列举一下每一轮面试的大概范围和深度,但是也不是绝对的,还是要看具体情况。

笔试

对于社招的程序员来说,基本上不需要笔试,但是也有公司是需要的,例如:今日头条和网易都有笔试。笔试都是比较基础的一些知识,Java、Android等方面的,一般不会有网络,计算机等方面的笔试,一般情况下大家都能答出来。

一、二面

近一段时间的面试经历来说,一、二面的问题没有什么很大的区别(公司基本上都有3面技术面,但是也有例外,我在网易就是2面技术面。),基本上都是一线开发人员。主要考察你是否有牢固的基础知识和是否在平常开发中能熟练使用。

  • 是否能讲解清楚你所做的项目,以及使用到的相关知识。
  • Android基础知识
  • Java基础知识,大概是多线程,线程安全,集合类,JVM,类相关知识等。
  • Android一些源码的阅读
  • 优秀的第三方框架源码阅读
三、四面

一般公司都是三轮技术面,但是也有四轮技术面的,不过不多。很多公司基本上每一轮面试官都会记录他所询问的问题,以便给下一轮面试官作参考,还有就是避免对同一个知识点多次询问。所以到了这轮面试,基本上不会再询问比较基础的知识。

  • 会从两个方面考察,
    • 广度:比较新的技术(Rxjava,插件化等),JVM,GC,网络,数据库,Android(一般不会询问之前面试官问过的问题)。
    • 深度:一般会通过1或2个问题来考察,例如:map接口下都有什么子类->hashmap和hashtable区别->hashmap实现原理->怎么解决hash冲突->是否了解concurrentHashmap->concurrentHashmap实现原理->volatile实现原理(concurrentHashmap读是不加锁的,使用到了volatile)。
  • 项目中的贡献,所做的优化。
  • 设计能力,基本上不多,这个要看面试的岗位,因为我这里面试的只是高级开发,并不是架构。
  • 工作中的亮点和突出。
hr面

基本上到了这轮,你就算通过面试了。hr会询问一些你的经历,最主要的还是和你商定薪资待遇。在这轮,大家应该要对自己的薪资水平有一个大体的了解,一般都是在原来的工资基础上增长20%~30%的样子,当然,如果你在面试过程中表现非常优秀,也可以不受这个限制。当然如果公司诚心要你,就算你要的工资过高,hr也会委婉的告诉你,不会直接把你pass。

面试前的知识储备 & 复习

接下来分享的系统学习资源以详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用

帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。

从架构基础开始,分了8个模块来逐步从基础进阶到架构师的环节:

1、架构师筑基语言基础 重点内容:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO 2、设计思想解读开源框架 重点内容:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack 3、360°全方位性能调优 重点内容:设计思想与代码质量优化+程序性能优化+开发效率优化 4、Android框架体系架构 重点内容:高级UI晋升+Framework内核解析+Android组件内核+数据持久化 5、NDK模块开发(音视频开发系列) 重点内容:NDK基础知识体系+底层图片处理+音视频开发 6、Flutter学习进阶 重点内容:Html5项目实战+Flutter进阶 7、微信小程序开发 重点内容:小程序介绍+UI开发+API操作+微信对接

最后分享一份面试宝典,祝每个人面试顺利。

Android BAT高级开发面试题及答案解析

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

最后以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 我的情况
  • 一面
  • 二面
  • 三面
  • 面试总结
    • 笔试
      • 一、二面
        • 三、四面
          • hr面
            • Android BAT高级开发面试题及答案解析
            • 最后以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。
        • 面试前的知识储备 & 复习
        相关产品与服务
        云开发 CloudBase
        云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档