新鲜出炉,百度安卓工程师社招面经,文末附答案

前言

一眨眼又到年初了,每到这个时候,我们都会慢慢反思,这一年准备做什么?准备向哪个方向发展?今年年尾有跳槽的底气了吗?

况且2020年我们经历了新冠疫情的洗礼,很多程序员都经历了失业,找工作的恐慌。导致今年的互联网环境太差,需要自己有足够的知识储备,才能够应对这凌冽的寒风。

本文主要是整理了百度工程师社招面经,以及一些面试经常会被问到的问题,附上答案分享给大家!

话不多说,直接上干货,第一次看我文章的小伙伴可以点个关注哦!每天都会更文,给大家分享一下Android新鲜事以及相关的新鲜面经和资料分享哦~

百度一面

算法:

§ 给你n个数,找到最大的m个数

§ equals和hashcode说一下

§ 线程创建的方法?线程池原理说一下?线程同步的方法?

§ HashMap说一下?

§ 百度贴吧的子帖的实现方法(主帖里面的评论帖,分别从数据库和移动端两个方面来说一下)

§ 如果在一个论坛主界面有很多帖子,并且在主界面上都显示这些帖子的图片(每个帖子9张),怎样避免OOM。(讲了两个思路,一个思路是展示缩略图,点击展示大图,另一个是横向ListView,滑动查看更多,滑出范围对Bitmap进行回收)。

§ 图片压缩过程和缓存相关说一下?LinkedHashMap跟HashMap的差别是什么?底层原理是什么?

百度二面:

算法:

§ 给你一个字符串,判断是不是标准的ip地址。
(我写完一个之后,说让我把所有的测试用例写出来,发现有几个遗漏掉了,面试官说,让我根据这些测试用例重新再写一下,考察代码扩展优化能力。)

§ 自我介绍,聊聊项目,问我数据来源和数据库设计比较多。(项目上聊的比较多)

§ 举了个数据库联合查询的例子,写个简单的SQL语句。(join)

§ TCP的三次握手说一下?为什么是三次握手?为什么是四次挥手?

§ TCP的滑动窗口原理知道吗?(我说原理不清楚,但是我知道他解决的是什么问题。)

§ hashMap是线程安全吗?如何实现线程安全?

§ Android的持久化存储方式说一下?

§ Android的启动模式和场景说一下

§ Android的ANR知道吗?怎么避免?

§ 内存溢出和内存泄露说一下(中间有提了下Handler)

百度三面

§ 一面出来没多久显示通过,二面在外面等了快两个小时吧,面试官是部门主管,很和蔼的人,不过也不是搞Android的,问得问题就比较发散。

§ 首先还是自我介绍,还问了问工作经历,做过的项目,获奖经历啥的。

§ 先就我数据分析的项目问了一些问题,问了我SVM和K-means,支持向量机是真不太熟悉,K-means大概讲了下算法流程,依据欧式空间距离进行聚类。还想问我遗传算法,然后看我也做了web后台,就问了为什么spring是Java后台开发主流框架,有哪些特点,我回答了面向切面编程aop和控制反转ioc,面试官具体就问了ioc和依赖注入的一些东西,这地方我确实答得不好,就说了自己在实际应用中如何使用的。

§ Java内存管理,主要说的是堆内存的管理,回答了新生代、老年代的区别,如何通过JVM参数对新生代过渡到老年代进行控制,GC常见算法,垃圾收集器讲了CMS,面试官看我这部分理解挺好就没继续问了。

§ 快排的原理,最好、最坏情况以及对应时间复杂度,从递归方程式上给他说了下。

§ Android方面自己觉得收获最大的应用,我就把App也拿出来给他展示了下(虽然识别效果不是很好Orz),主要是利用手机各种传感器收集到的数据进行情境识别,移动端是如何部署随机森林、神经网络模型的,主要讲了pmml包的使用;App使用了MVP架构,三个部分如何通过接***互进行解耦,为什么选择MVP而不是MVC;通过token保证单用户登录,和服务端异步交互的实现和封装等。

§ 大概就是这些问题了,因为面试官不是搞Android的所以这方面知识问得也很少,后面就是提问环节了,主要和面试官谈了谈AI和Android如何结合,面试官还问了我对未来的规划啥的。

以上就是这次百度面经的全部内容了,相关的面试题以及答案,我全都放在 GitHub自行查阅。

同时我也推荐一下我的Android交流裙Android技术交流不仅可以免费获取资料,而且还能有一帮大佬为你摆平关于Android的技术问题~

相关的资料以及算法面试题精选

一、Java 基础+进阶

  • JVM
  • Object
  • static
  • final
  • String、StringBuffer. StringBuilder
  • 异常处理
  • 内部类
  • 多态
  • 抽象和接口
  • 集合框架
  • 反射
  • 单例线程
  • volatile
  • synchronized
  • Lock
  • 引用类型
  • 动态代理
  • 元注解

Android 知识点汇总

  • Activity
  • Fragment
  • Service
  • BroadcastReceiver
  • ContentProvider
  • 数据存储
  • View
  • 进程
  • Parcelable接口
  • IPC
  • Window / WindowManager
  • Bitmap
  • 屏幕适配
  • Context
  • SharedPreferences
  • 消息机制
  • 线程异步
  • RecyclerView 优化
  • Webview

Android 扩展知识点汇总

  • ART
  • Hook
  • Proguard
  • 架构
  • Jetpack
  • NDK开发
  • 类加载器

常见面试算法题汇总

  • 排序
  • 二叉树
  • 链表
  • 栈/队列
  • 二分
  • 哈希表
  • 堆/优先队列.
  • 二叉搜索树
  • 数组/双指针
  • 贪心
  • 字符串处理
  • 动态规划
  • 矩阵
  • 二进制/位运算
  • 其他


以上就是这些资料的部分内容,因为篇幅原因我就不全部展示出来了,有需要的朋友可以点击 GitHub自行查阅。

希望能够帮助到大家。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值