今年的毕业生太难了,非常接地气的Android中高级面经给你们助力

前言

前几天有个应届毕业生的程序员在微信上找到我,并向我吐槽了一下他目前的心酸现状。我对此除了表示同情以外,只能剩下鼓励了,对于不能帮助他,我深感我自己力量的薄弱,意识到了我必须强大才行,这样才能帮助别人。如果你是一个无名小卒,那么自身都难保,还凭什么说去帮助别人呢?因为我想让这个世界变的美好一点点。

今年的毕业生太难了,非常接地气的Android中高级面经给你们助力_第1张图片

这个应届毕业生的能力到底如何,我不清楚,我从和他的对话中可以看出他是一个对技术执着而且充满着热爱的一个程序员,为此我还听出他对这个行业的期望,感叹了人生处处是套路,行行都是陷阱的无奈。思考良久,我结合自身经历收集了各大博客上大佬们整理出来的面试题,在这里无偿分享给大家,希望大家都能如常所愿!

一、简历

网上有很多对程序员简历的一些指导,这里就不重述,大家可以搜下网上其他大神的总结,结合自身情况修改下。我有几点建议:

1.尽量不要花哨,程序员和设计师或者产品运营还不一样,我们的简历成功与否决定权还是在技术面试官那,而他们看重的是你的项目经验内容和技术等描述。

2.技能描述这块尽量只写你懂得而且理解深刻的,可以适当加入一些新技术或流行框架,不过这块需要理解,没来得及看源码的可以看看大神们对它的总结,网上一大堆。

3.项目经验这块尽量加入关键词,比如使用了什么技术、用到哪些设计模式、优化数据对比、扩展总结之类的。而非一味地介绍这个项目内容(那是产品经理的描述),比如性能优化这块,分为UI性能优化、内存优化、数据库优化、网络优化、耗电优化等等。可以从1.如何发现问题,2.怎么解决问题,3.解决效果对比,这几个方面去描述。举个简单例子——UI优化,可以从 UI出现什么问题(卡顿不流畅),怎么查找问题(手机开发者权限>GPU过度绘制 发现层级问题,TraceView CPU使用情况分析),怎么解决问题(降低层级、自定义View绘图出现问题等),解决问题后性能再次对比。

二、技能储备

阿里

一面
1、自我介绍下自己,不超过3分钟
2、你感觉比本科阶段自己进步了多少,有哪些进步
3、研究生期间最大的进步是什么
4、你觉得你适合从事哪个方向的开发
5、synchronized与lock的区别,使用场景。看过synchronized的源码没
6、JVM自动内存管理,Minor GC与Full GC的触发机制
7、了解过JVM调优没,基本思路是什么
8、对于CMS来说,要合理设置年轻代和年老代的大小。该如何确定它们的大小呢?
9、如何设计存储海量数据的存储系统
10、缓存的实现原理,设计缓存要注意什么
11、淘宝热门商品信息在JVM哪个内存区域??
12、volatile关键字的如何保证内存可见性
13、happen-before原则
14、Lucene全文搜索的原理
15、你觉得自己适合哪方面的开发,为什么

二面

1、自我介绍下自己,不超过3分钟
2、你说你熟悉并发编程,那么你说说Java锁有哪些种类,以及区别
3、在jdk1.6中做了第synchronized的优化,
4、如何保证内存可见性
5、Http请求的过程与原理
6、三次握手与四次挥手
7、AOP的原理
8、那么你说说代理的实现原理呗
9、看过Spring源码没,说说Ioc容器的加载过程吧

三面

1、自我介绍,不超过3分钟(这次好像时间更久了,也就2分钟多点)
2、说一下你对哪个项目比较熟悉
3、为什么做这个项目
4、项目采用了什么架构,数据库如何设计的
5、数据库由哪些表,为什么有这些表
6、主要有哪些核心模块,模块之间如何通信的
7、session放在哪里
8、如何保存会话状态,有哪些方式、区别如何
9、分布式session如何管理,你有哪些方案
10、学过数据结构和算法吗(当然),你说说二分搜索的过程
11、说一下快排的过程,写一下伪代码
12、了解哪设计模式,举例说说在jdk源码哪些用到了你说的设计模式
13、你有什么问我吗(仍然上面三个问题)

四面

1、来个自我介绍呗,不超过3分钟
2、介绍下你最熟悉的项目
3、项目使用了什么架构,亮点是什么
MVC,用到Lucene,用aop实现了权限的管理
4、平时主要学习什么课程
Java、数据结构、数学建模
5、你目前的研究方向是什么
6、家是哪的
7、喜欢看什么书
8、大概什么时候能来实习呢
9、四面总结

五面

1、自我介绍下吧
2、做了哪些项目
3、看你在问题中说你在杭州看到很多商贩使用付款二维码,你对支付宝怎么看
4、为什么想来支付宝实习呢
5、技术栈、对移动支付比较好奇,
6、你身边同学如何评价你、老师呢
7、如果与同事发生了意见的不一致,你会如何解决呢

今日头条

一面
自我介绍
问项目,问的很细。速度、性能如何做的优化
faster rcnn、yolo、ssd的区别
LSTM的结构与前向传播
现代cpu算力在什么量级
手写代码:全排列

二面
问项目,主要问创新点在哪里
推导PCA
概率题:13个人生日都不是同一天的概率,要求给出表达式和最终结果(不用计算器估算)
场景题:推荐系统模型收敛的很好,但是多样性可能不好的情况下如何解决。
非递归中序遍历二叉树

三面
聊学校参加的比赛
聊实习做的事情,有什么能改进的点
一道题:假设有一组基向量b1,b2,...,bn,现在有一个向量x,希望能用这组基向量中的三个表示,也即$x = w_1b_i + w_2b_j + w_3b_k$,问如何求解这个问题

四面
一个圆上随机三个点组成锐角三角形的概率,要求数学推导
一个无序数组,定义一个作为:相邻的三个数进行循环左移,比如789循环左移后为897,问能否仅使用该作使得数组升序。如果不能,总结一下能和不能的规律。
讲一个项目。

网易云音乐

一面
自我介绍
手写代码:合并两个有序链表
线性回归和逻辑回归区别,推导逻辑回归
ID3、C4.5、CART的区别,写信息增益、信息增益率、基尼系数的公式
树有几种剪枝的方式,各有什么优缺点
解释一下排序的稳定性,冒泡排序是否稳定,复杂度多少

二面
各种问实习
gbdt和xgboost区别
adaboost和gbdt区别
过拟合怎么解决
CNN参数量计算
如何评价一个分类器,auc的工程计算方式,roc曲线

总监面
问实习项目
推导FM、FFM
问了一点强化学习概念

爱奇艺

一面
问实习,在特征签名的问题上说了半天
怎么做ab实验,ab实验的原理
特征工程怎么做的
如何判断特征的有效性
deep model在推荐中的应用是否了解,讲一个

二面
问实习,聊了一下场景不同下,推荐系统的关注点有什么不同
手写代码:求二叉树深度和宽度

携程

一面
问实习做的事
懂不懂深度学习,在推荐系统中的应用是否了解

二面
问实习做的事,还给提了不少很中肯的意见。
xgboost和gbdt区别
聊最近的推荐系统相关的模型。XDeepFM,DIN之类的

招行卡中心

一面
介绍一个觉得最成功的项目
劝我转开发。。。

二面
介绍一个项目
说说自己的职业规划

银联

一面群面
互联网金融,危害性排序

二面
问实习
手写代码:2sum,3sum,n sum(讲思路)

海康

一面电话面
问项目,项目背景,难样本挖掘是怎么做的
问论文的创新点

二面
问项目
手写代码:求两个旋转矩阵的IOU

综面
讲论文的创新点
参加比赛的算法相比论文中又做了什么改进

虹软

一面
聊项目
问了一些深度学习基础知识

二面
聊项目
LeNet、vgg、resnet等经典网络的发展
GAN的损失函数
DQN

快手

一面
自我介绍
问项目
batch norm,具体训练测试的时候是怎么做的
手写代码:一个三棱柱。6个点涂4种颜色。要求同一条棱两端的点颜色不能一样。问一共有多少种涂色方案。

二面
问项目具体实施细节
又问了一次batch norm
svm了解吗,什么样的函数能做核函数
手写代码:p的概率生成0,1-p的概率生成1.如何等概率生成0和1.如何等概率生成0~n
让求一个不定积分。。

cvte

一面
自我介绍
讲一下逻辑回归,逻辑回归能用来做回归吗?
讲一下svm
过拟合的原因及解决方法
L1、L2正则讲一下
说一下直方图均衡化
说一下二值化,大津法怎么做的
介绍一个项目

二面
场景题:老师写的板书的电子化怎么做
场景题:自动批改试卷怎么做

文末

好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以加一下合作的技术群:345659112。来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

这里放上一部分我工作以来以及参与过的大大小小的面试收集总结出来的一套 进阶学习的视频及面试专题资料包,在这里 免费分享给大家,主要还是希望大家在如今大环境不好的情况下面试能够顺利一点,希望可以帮助到大家~ 加群:345659112 找管理员 免费领取

今年的毕业生太难了,非常接地气的Android中高级面经给你们助力_第2张图片

未完待续。。。
这里只是整理出来的部分面试题,后续会持续更新,希望通过这些高级面试题能够降低面试Android岗位的门槛,让更多的Android工程师理解Android系统,掌握Android系统。喜欢的话麻烦点击一个喜欢在关注一下~

你可能感兴趣的:(android程序员面试)