2018三月面试经历

金三银四。求职的好机会。第一个需求发展,第二个看看市面上需要什么样的人才,找准自己的定位。坐标南京。面试了努比亚,苏宁,焦点科技,地平线机器人。

地平线机器人

fragment与activity的交互,fragment的生命周期,什么时候绘制view。 怎么使用fragment,不带参数的fragment有什么好处?带参数的fragment会有什么弊端?

android有几大布局,一般你用什么?为什么?(估计是从性能优化的角度说,但是还没搞懂后续他会问什么,因为没回答出来他满意的答案,他也没继续问)

RelativeLayout 会调用两次onMeasure()方法,
groupView自己是不会测量的,交给子view测量。
RelativeLayout会根据2次排列的结果对子View各做一次measure,一次横,一次竖。
这是为什么呢?首先RelativeLayout中子View的排列方式是基于彼此的依赖关系,
而这个依赖关系可能和Xml布局中View的顺序不同,
在确定每个子View的位置的时候,需要先给所有的子View排序一下。
又因为RelativeLayout允许ViewB在横向上依赖ViewA,ViewA在纵向上依赖B。
所以需要横向纵向分别进行一次排序测量。

LinearLayout 如果不使用weight属性,只会调用一次,使用weight属性,调用两次

RxJava使用,Rxjava的好处。对Rxjava的理解。RxJava 操作符,比如map 和 flatMap 的区别,更高阶的东西需要去掌握;

Touch事件传递。比如说我现在有个两层布局,里面有一个button,点击button的时候,说说调用的方法。

封装了网络了,说说封装思路是什么?对httpClient的理解,google还支持使用它么?(这个我说不知道,估计后面本来还会问为什么不支持。)

用过多线程么?多线程之间是怎么通信的。

封装网路用了观察者模式,能解释观察者模式么?

地平线机器人是福利待遇最好的,还没面试前,hr就开始介绍福利。技术面试官非常深入,基本上围绕你的经历然后深度挖掘内容,是技术氛围非常厉害的一家公司。

努比亚

看过Glide源码么?介绍一下里面的缓存机制。

用过handler么,谈谈handler机制。

使用过动画么,为啥引进属性动画?

了解过内存泄漏么?怎么解决的?

ANR问题怎么处理?

线程池用过么?

中等偏上的公司,问题比较有代表性,对系统性能要求比较高。

苏宁金融:

fragment的生命周期?view是在什么时候绘制出来的?

设计模式用过么?说说你熟悉的几种?单例模式有几种。手写一个。

HashMap是无序的么?说出几个无序有序的map。

HashMap底层设计是什么样子的?为啥这么设计。

简要说一下,hashmap put 一个数值进去,是怎么进去的。怎么查找的?又聊了聊数组。

使用过kotlin么?

苏宁更偏向于基础问题,面试苏宁的时候,正好碰上了苏宁扩张。面试官非常真诚,讲了很多脱离技术的问题,对于一个技术来说,还是受益匪浅的。虽然过了苏宁的技术面试,但是被人事卡下来了。工资要的过高。还是挺可惜的,没有进苏宁金融。

焦点科技

v7包里面使用过什么控件?

怎么保证推送的覆盖率?

进程间通信有经验么?

android 安全有过经验么?

service用过么?

焦点科技面试我的部门。大概android7,8个人,负责7,8个app。不缺业务码农,需要对性能,安全,进程间通信方面有经验的人才。会RN,在焦点科技是加分项。

总结

技术上欠缺的是:

  • 进程间通信,
  • 多线程并发,
  • view的绘制处理,滑动事件的冲突,
  • Android安全,
  • java基础
  • 设计模式
  • 对开源库的代码理解
  • RN混合开发(加分项)

需要去做的是:

  • 对源码的深度理解。
  • think in java
  • java设计模式
  • 高并发
  • JS那本经典
  • Android两本经典