2024面试字节跳动看这篇就够了!安卓程序员的面试经历及其感悟!(1)

23)synchronized关键字;

24)volatile关键字作用,可见性,重排序,单例模式中为什么可以用它;

25)TCP如何保证可靠传输;

26)客户端设计一个网络库,需要考虑哪些问题;

29)Java中如何判断一个对象是否存活,有哪些GC Root根节点;

30)Java中异常体系;

31)什么时候出现内存溢出、用过什么内存泄漏的工具;

  • 二面

1)熟悉那些设计模式呢?

2)动态代理底层是如何实现的?

3)讲讲Retrofit的动态代理吧

4)能简单说说JVM内存模型的目的以及在内存中区分为哪些区域吗?

5)内存回收机制大致讲讲呗?

6)类加载机制完整细致的描述一下把

7)类加载器的双亲委派原则说一下吧?(这里有一个疑问,我说父子类加载器不是继承关系,然后面试官说不太对,这里我有一点点疑问,还请大家告知一下)

8)能说一下Java .class文件的结构吗?

9)线程池的基本机制有了解吗?非核心线程如何保证延迟结束?

10)为什么内部类会默认持有外部类的引用?

11)Handler消息机制简单说一下吧(延时的消息是如何发送的?以及通过Looper.loop()是如何处理延时消息的?)

12)为什么Handler会出现内存泄漏?

13)View中的post和handler的post有什么区别?(我说view中的handler是经过重写的,会处理关于View的相关绘制事件,然后面试官说只回答对了一部分,我有些疑问,还有其他的区别吗?)

14)有用到什么内存泄漏检测的框架吗?知道原理吗?(就是上面所说的JVM内存回收机制)

15)知道关于性能优化相关的吗?能简单讲一下吗?(布局,异步,过渡绘制)

16)能讲一下Activity的启动流程吗?

17)听你讲到了进程间通讯,PackageManagerService和ActivityManagerService进行通信的方式是什么?

18)Binder驱动底层原理了解吗?(mmap的内存地址映射)

19)Serializable和Parcable有什么区别?如何使用?

20)听你说到了sp(SharedPreference),你知道sp能跨进程通讯吗?

三面

1)自我介绍

2)讲个项目,自己最熟悉哪一个

3 )项目做了什么

4)网络请求框架怎么封装

5)还遇到什么问题没有

6)事件分发机制,多个RecycleView 嵌套怎么处理

7)OkHttp源码

8)讲一下拦截器

9)Cache缓存是怎么做的

10)图片做过吗

11)你的图片项目怎么加载大图

12)如何防止OOM

13)做过View 的性能优化吗

14)讲一下View的优化

15)层级布局

16)如何减少绘制

17)针对measure和draw 有什么优化的地方吗

18)多个view 加载卡顿怎么办

  • HR面:

1)自我介绍,抓住介绍的点让你详细说说?

2)期望工作地点

3)事业群介绍

4)为什么想要留在北京

5)为什么不读研究生

6)如何看待Android开发,为什么不接触IOS呢

7)刚开始工作压力会很大,你有没有想过怎么处理压力呢

反问
8)有没有健身房

9)有住房补贴或者房源推荐吗

10)招多少个Android应届生呀

11)应届生培养方案

12)为什么来美团?你对美团技术团队的了解有多少?

关于程序员的几个阶段

每个程序员、或者说每个工作者都应该有自己的职业规划,如果看到这里的朋友没有自己的职业规划,希望你可以思考一下自己的将来。

常常思考自己的未来,也从自己的思考中总结出了一些东西,作为第一部分来谈谈。认为一名程序员应该有几个阶段(以下时间都算上实习期):

  • 第一阶段----三年

  • 我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发。我们知道如何团队协作、如何使用项目管理工具、项目版本如何控制、我们写的代码如何测试如何在线上运行等等,积累了一定的开发经验,也对代码有了一定深入的认识,是一个比较纯粹的Coder的阶段

  • 第二阶段----五年

  • 五年又是区分程序员的第二个门槛。有些人在三年里,除了完成工作,在空余时间基本不会研究别的东西,这些人永远就是个Coder,年纪大一些势必被更年轻的人给顶替;有些人在三年里,除了写代码之外,还热衷于研究各种技术实现细节、看了N多好书、写一些博客、在Github上分享技术,这些人在五年后必然具备在技术上独当一面的能力并且清楚自己未来的发展方向,从一个Coder逐步走向系统分析师或是架构师,成为项目组中不可或缺的人物

  • 第三阶段----十年

  • 十年又是另一个门槛了,转行或是继续做一名程序员就在这个节点上。如果在前几年就抱定不转行的思路并且为之努力的话,那么在十年的这个节点上,有些人必然成长为一名对行业有着深入认识、对技术有着深入认识、能从零开始对一个产品进行分析的程序员,这样的人在公司基本担任的都是CTO、技术专家、首席架构师等最关键的职位,这对于自己绝对是一件荣耀的事,当然老板在经济上也绝不会亏待你

一些面试建议及小技巧

第一部分总结一下,我认为,随着你工作年限的增长、对生活对生命认识的深入,应当不断思考三个问题:

1、我到底适不适合当一名程序员?

2、我到底应不应该一辈子以程序员为职业?

3、我对编程到底持有的是一种什么样的态度,是够用就好呢还是不断研究?

最终,明确自己的职业规划,对自己的规划负责并为之努力

关于专业技能

写完项目接着写写一名7年工作经验的Android程序员应该具备的技能,这可能是Android程序员们比较关心的内容。我这里要说明一下,以下列举的内容不是都要会的东西----但是如果你掌握得越多,最终能得到的评价、拿到的薪水势必也越高。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

最后

想要了解更多关于大厂面试的同学可以点赞支持一下,除此之外,我也分享一些优质资源,包括:Android学习PDF+架构视频+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。

cnBZ-1711610730217)]

最后

想要了解更多关于大厂面试的同学可以点赞支持一下,除此之外,我也分享一些优质资源,包括:Android学习PDF+架构视频+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 这几块的内容。非常适合近期有面试和想在技术道路上继续精进的朋友。

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值