这两次面试针对性挺强的,一面针对操作系统,计算机网络,数据库的问题
二面主要针对Android方向的提问
二面:
1.能给我说说关于RecyclerView的LayoutManager相关的吗?(我只知道负责整个布局形式,比如横向纵向,流式布局,瀑布流布局这样)
2.如果让你设计一个布局,就拿你的简历来设计,你会如何设计?
针对可能需要显示或不需要显示的布局使用ViewStub标签,针对重复使用的布局用include标签
3.能说说Handler消息机制是什么样的吗?如何插入Message消息?(插入排序,按msg.when升序排列)
4.听你说了主线程阻塞?能讲讲为什么是阻塞吗?(这里是口误了,应该是主线程释放cpu,让CPU去执行其他任务,然后当消息队列中重新提交了新的任务时由底层去“唤醒”主线程从阻塞位置继续执行)
5.能给我讲一下Binder驱动底层是如何实现的,以及需要注意的地方是什么吗?
6.多进程之间如何进行进程间通讯呢?底层原理是什么样的呢?(linux:共享内存,管道,匿名管道,消息队列,信号量(同步),socket)
7.听你说了同步和互斥,你是如何在自己的多进程项目中实现同步呢?就是如何保证接受任务的有序性?(后台服务中开启子线程,然后使用handler的形式保证任务的有序执行) ps:面试官给我解释了半天如何实现同步是什么意思,最后搞懂了他想说的含义,呜呜呜。
然后做了一道题:
判断一个数字是否是回文,条件:时间复杂度log10 n,不使用额外的空间,越快越好,我很快写了一个符合要求的,然后面试官问我能不能更快
我人傻了,直接将数字翻转然后判断难道不是更快吗?然后他说遍历一半,然后再判断会更快,我马上get到他的点,马上改了一下,确实更快(冒出说谎的冷汗)
反问:
您觉得我能过吗? (能过,后面还有技术总监和hr的面试)
对我的评价(Android基础知识扎实...客套话)
结束
全部评论
(5) 回帖