2024届硕士生年初Android春招实习面试和正式校招面试经验汇总(收割腾讯,百度,美团,网易等offer)

  • 数据结构:排序算法,归并/快排(实现原理/平均复杂度/能否提前结束/谁性能更优), 堆排(怎么实现调整堆结构/k个最大的数);

  • 算法题:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组

字节实习三面

  • 自我介绍:学过的专业课程;看过哪些计算机专业书

  • 操作系统:内存分配区域(Java层面回答,对象引用在堆和栈都有么?函数内部new的对象存放在哪?);用户态/内核态;中断是什么

  • 网络:计算机网络有哪几层,分别对应什么协议;IP/TCP传输的都是什么数据;DNS是什么,有什么作用

百度

==

百度是现场面试,一共三面没有HR面,第三面是总监面,兼顾技术面与非技术面试,百度的面试官都比较友好,一面技术问的比较细,二面重项目,三面是聊天居多。

百度校招一面

  • 项目:项目介绍;项目中的编码规范

  • Android:Android四大组件安全性;Activity启动模式;IntentFilter匹配规则,action和category区别;Handler阻塞为什么不卡死;事件分发机制,onTouchEvent返回false处理流程, dispatchTouchEvent返回false处理流程;Looper是什么;对象池,手写对象池实现;ContentProvider原理;sp支持跨进程么,怎么解决跨进程,怎么实现进程同步; 帧动画实现: 100张图,200ms显示一张,读取一张图要400ms,怎么解决避免卡顿;Bitmap内存复用限制条件

  • 操作系统:线程时间片分配原理

百度校招二面

  • 项目:梳理项目;项目难点;项目中技术框架

  • 算法题:手写二分法;电梯状态机设计

  • 其他:优缺点;专业

百度校招三面

  • 算法题:最长公共子串

  • Android:ART虚拟机类加载机制;okhttp原理;热修复原理

  • 其余闲聊:优点缺点;大学遗憾;作为班长组织了哪些活动;长期坚持的事情;专业去向

美团

==

美团面试是现场一天面完,技术面试一共两轮,最后有一轮HR面试,回忆起来似乎问的问题不是特别多,但都比较开放,聊的比较深入,技术一面直接打开美团APP聊相关页面设计实现,这种方式还是比较新颖的,二面则是聊项目比较多,问很多项目中具体实现细节。

  • 项目:实习项目;项目最难点;项目中技术选择;阿里云对象存储OSS的STS凭证设计

  • Android:Lint工具是编译期的吗,原理;美团首页设计具体实现; RecyclerView多Item的难点;

  • 设计模式:MVP MVVM使用场景

  • HR:现在有什么offer;选择offer依据;聊一聊怎么解决公司内沟通问题

网易

==

网易技术面试一共四轮,三轮技术,一轮HR,前两轮视频面试,后两轮现场面试。网易技术一面二面以基础居多,聊的都是写代码会遇到的问题,比较细,三面是比较深入的,聊了很多情景题,比如日志系统的设计的全方面,包括效率,安全等等。

网易校招一面

  • 项目:介绍实习期间解bug映像最深的

  • Android:事件分发传递过程,onTouchEvent返回flase怎么办;怎么设计缓存;Android数据持久化,数据库怎么批处理(原理);SP支不支持多线程,SP怎么实现多线程;View绘制过程;Handler消息机制

  • Java:B线程怎么实现等待A线程完成工作;线程怎么结束工作,Java结束线程的三种方法;Java线程哪些方法支持中断;设计一个有限资源的请求;怎么设计对象池(对象的存与放回);线程池的线程什么时候创建;Java中的锁,可重入锁性能

  • 算法题:两个数组交换一个值,让和相等,找到这两个值

网易校招二面

======

  • 项目:实习期间工作内容;参与的项目;实习期间解的bug;参与的编程规范说一下;Lint工具了解吗

  • 设计模式:单例模式

  • Android:进程间通信方式(与linux进程间通信区别);Socket怎么验证安全性;广播(全局 本地区别);怎么实现文件的多进程通讯(A进程改了文件怎么通知B进程读取);二级缓存怎么设计(网络 数据库 view间关系);volatile关键字具有原子性吗

  • View:Activity生命周期,onSaveInstanceState onRestoreInstanceState区别,调用时机,广播注册应该在Activity哪个生命周期里,怎么统计Activity onCreate的次数;Fragment与Activity区别,Fragment生命周期管理,Fragment与ViewPager怎么解决重复加载;View绘制过程,MeasureSpec的三种模式;Framelayout LinearLayout ReativeLayout中分别设置Button在右下角;margin padding区别,gone invisible的区别;requestLayout、invalidate与postInvalidate区别;Android动画怎么取消循环动画,repeat模式;drawable与view区别,有哪些drawable

网易校招三面

  • 项目介绍

  • Android:图片传输过程中URL加上大小以节省流量,如果忘记加怎么办,如果ImageView是wrap_content怎么设定大小;图片相关缓存,编码,内存复用,格式(svg等); drawable mutate是什么;okhttp 桥接拦截器和缓存拦截器;设计自定义DNS解析器

  • 设计题:有没有看过开源打点框架;打点系统设计,写日志文件过程中会有buffer,此时进程被杀怎么办,打点日志被用户篡改怎么办,怎么保证日志安全性,怎么保证日志没有被重复传

  • 其余:磁盘内存映射原理;平时开发有没有遇到过复用问题;最近了解了什么Android新动向;自己学习计划

爱奇艺

===

爱奇艺一面二面还是以基础为多,三面是总监面会深入聊一下原理问题,而且也比较细节。

爱奇艺实习一面

  • 项目:介绍实习项目;分析内存泄漏,线程同步的问题

  • 计算机网络:HTTP/HTTPS区别

  • Android:OkHttp框架(里面有那些设计模式);如何终止一个线程

爱奇艺实习二面

  • 项目:介绍项目;内存泄漏的来源,有没有做过优化

  • Android:Service的两种启动方式,区别在哪;性能优化有没有做过

  • Java:手写单例模式

  • 算法:删除链表中一个节点

爱奇艺实习三面

  • 项目

  • Java:public关键字作用;.java文件名怎么确定;外部类最多有几个,内部类最多有几个,内部类支持嵌套么;线程池怎么给新建的线程设置名字,线程池种类; 注解的使用

  • Android:Activity的启动模式,生命周期,Activity A->B的生命周期;Handler中怎么实现Looper和线程绑定,一个线程最多有几个Looper, 多个Looper报的异常,消息阻塞再次唤醒是什么机制;ThreadLocal是什么

高频面试题总结

=======

  • Android四大组件,Activity生命周期,Fragment

  • Handler,Looper,ThreadLocal,事件分发机制,View绘制过程,Activity启动过程

  • 内存泄漏,OOM,图片加载,ANR,ART与Dalvik虚拟机

  • 多线程,多进程,死锁

  • HTTP、HTTPS、TCP、UDP

  • HashMap及其余Java集合

  • 内存分配,回收算法,GC,堆栈区别,类加载机制

  • volatile,synchronized,Lock

  • MVC,MVP,MVVM,单例模式,观察者模式

面试心得

====

  • 面试首先一般都会有个自我介绍,可以事先准备下1-2min的自我介绍

  • Android岗位面试内容较广,需要做到各方面知识都要了解,在了解的基础上不断深耕

  • 现场面试的体验一般优于电话or视频面试,因为面对面交流更有效清晰

  • 至少做一个拿的出手的项目,一是面试时可以聊起来,二是简历有干货,三是通过做项目可以熟悉那些开源工具

  • Android岗位一般算法题要求不高,刷完《剑指offer》大部分就能应对了

建议

==

  • 主要针对非科班同学:最好系统的看下操作系统和计算机组成原理,因为看完操作系统后才能系统的认识计算机的原理,能更好的从底层去认识上层

  • 多看源码,包括Java层的代码在JVM中的实现源码(如synchronized的实现源码),Android Framework的源码(更好认识Android层的实现),Android开源库源码(OKHttp,Retrofit,RxJava,EventBus,Glide,Gson等等,更好的学习优秀开源库源码,做到用的熟,懂原理)

  • 多问自己为什么,比如两个技术点优缺点分别在哪,各自的使用场景(如单例模式下饿汉与懒汉的优缺点,使用场景),这样才能更契合实际应用开发,针对不同场景使用不同技术点

  • 及时复盘总结面试中遇到的问题,分为两方面,一是知道但不能深入的,这种需要继续多看多总结,另一种是没接触过的,这种可以先了解下,万一面试又遇到了,可以回答下了解到的,之后再去深入总结(毕竟时间有限,不可能面面俱到,只能不断学习总结)

资源分享

====

Java书单

  • 《Java核心技术》:Java基础知识

  • 《Java并发编程的艺术》:并发知识集合

  • 《深入理解Java虚拟机》:虚拟机知识集合

Android书单

  • 《Android开发艺术探索》:Android四大组件原理,部分Framework源码,图片高性能加载,多进程Binder原理等等

  • 《Android源码设计模式》:设计模式,Android源码中采用的设计模式;MVC,MVP,MVVM

  • 《Android进阶之光》:各种Android开源框架源码解析

  • 《Android进阶解密》:Android系统启动流程,Activity启动流程,JNI,ART虚拟机,热修复,插件化等原理

  • 《Android Gradle权威指南》:了解Gradle原理

算法书单

  • 《大话数据结构》:基本讲了常见数据结构,且图文丰富,清晰易懂

  • 《剑指offer》:刷题

操作系统书单

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

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

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

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

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

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

最后

最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2019-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。

还有 高级架构技术进阶脑图、高级进阶架构资料 帮助大家学习提升进阶,也可以分享给身边好友一起学习。

一起互勉~

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

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

录**

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 25
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值