CVTE-Android校招面经
CVTE-Android校招面经
一共两轮技术面和终面,第一天两轮技术面,第二天终面,根据牛友提前批的经验,终面扼杀一半以上的人,非常残忍。
一面-基础面(50mins)
实习项目、校园项目
1.webview的优化,预加载,资源缓存,h5和Java交互,漏洞,API改动
2.模块化application实现,AndroidMenifest文件合并问题
3.模糊图片优化
Android基础知识
1.activity启动模式
2.线程池
3.自定义view的流程,做过哪些复杂的view,怎么实现的
4.ListView的优化
Java基础知识
1.分别介绍集合
2.哪些集合是安全的,HashMap的put原理,我讲了后面Java1.8之后做得改进
3.如何判断对象是否已死,GC算法
4.Java内存模型JMM
5.多线程通信,wait/notify
6.一道情景题:需要提供一个连续不断的文件,每个文件大概300k左右,用完就不要了,应该怎么设计呢?我的回答是这是典型的生产者消费者模式,文件可以使用hash算法处理,然后面试官打断说直接借用系统API,有什么方便的方法吗?我说使用队列,因为用完就不需要了,所以不需要做缓存可以使用SynchronousQueue,因为SynchronousQueue内部没有任何容量的阻塞队列。SynchronousQueue内部相当于一个空集合,只有一个文件。然后面试官说思路可以。
网络
1.滑动窗口,网络拥塞控制算法
2.讲OSI模型中的TCP/IP,三次握手,四次挥手
设计模式
1.了解哪些设计模式,我讲了装饰者模式和责任链模式,还想继续说观察者模式,然后面试官说可以了
2.举例讲了Context
二面-项目组长面(45mins)
1.手画你在学校开发的项目的框架图,然后讲讲,这个画得不是很好,导致后面讲的不清晰
2.你自定义view过哪些复杂的view呢?讲讲怎么实现的?有没有自定义过继承ViewGroup的复杂view
3.Gradle构建项目的过程,编译其他库的时候有碰到什么问题吗,Gradle插件版本号跟Gradle的关系是怎样的(这里不是很明白)
4.插件化和组件化有了解吗,我回答说热修复算吗,面试官就不接着问了
5.MVP开发模式的P会出现接口冗余,这会你需要怎么优化呢?这个没想出来
6.APP的编译过程
7.谈谈你未来3-5年的规划
8.如何解决项目团队矛盾的问题
9.你觉得Android运用层学的比较难的哪块是什么?我回到自定义view,自定义属性动画还有binder跨进程通信
10.有实现过什么比较复杂的动画效果吗?怎么实现的
11.屏幕适配方案
12.Android虚拟机的优化
13.手画Android系统架构,你觉得还有哪些层次没有接触到的,Framework层学到了哪些东西,讲些各类服务
14.手撕代码
总结:一面基础面试比较稳,但是紧接着就开始二面感觉状态比较疲惫了,而且面试官气场很大,不断地再给你施加压力感,有些时候会走神,发挥得比较差,我都感觉快聊不下去,面完以为挂了,吃完饭之后突然收到通过信息,非常幸运二面通过,可能是手撕代码救了我
终面(40mins,有三个面试官,听大佬的,都是非技术岗,我们三个技术岗位一起面)
1.轮流介绍下自己
2.给前两次面试打分
3.有没有面试过哪些公司了,有收到多少offer了,为什么
4.工作的薪资期望,地点和时长
5.家庭情况,爸妈性格怎么样,你觉得跟谁的比较像,家里人对工作有什么要求吗
6.有没有女朋友
7.你的梦想追求,未来规划
8.你的童年印象最自豪的一件事情
9.最近压力最大的是什么事情,如何调解?我回答高考第二大,找工作第一大
10.有了解过CVTE吗,为什么要来面试呢
11.为什么不留在金蝶转正?有收到offer了吗
12.如果你面试没有通过,你觉得是什么原因呢?这个问题我是沉默了很久最后一个回答的,我觉得不是我的技术基础不扎实,而是欠缺其他沟通协作或者其他的知识和能力,还需要继续地学习
13.提问了面试官两个问题