小米面试已经有一段时间了,好多问题都不记得了,只能把记得的一些问题写下来。
一面:
线程间通信方式。
线程安全类,hashmap的fail-fast原因,采用
volatile 可见性,原子性,AtomicInteger。
还有handler传递原理,ThreadHandler,IntentServer的原理。涉及到ThreadLocal。
以及,listview怎么实现重复利用的
算法题很简单,翻转链表,3个3个翻转。
二面:
binder实现原理,为什么采用binder,而不采用linux其他进程间通信的方式。
然后是一个算法题。
a可以代表1,b代表2,c代表3......z代表·26,问题是,给你一串数字,写出所有的可能组成的方式。比如11可以代表
忘得差不多了,就先记下这些吧。
在记录下好未来的两道算法题。
一面:
最大子矩阵和,动态规划。
由01组成的举证,求由1组成的最大子矩阵的面积(二维单调栈)。
二面:
最大上升子序列的值(动态规划,类似还有最长上升子序列(连续和非连续),最长公共子序列,)