资深安卓开发者(4-8岁)
资质与经验-
· 4-8年软件开发经验
· 必须有Android移动应用程序开发经验。
· 有初创公司的经验将是额外的优势。
职能能力-
· 数据结构与算法,ORM
· 在专业环境中为 J2EE 工作
· 必须有Android 经验。
· 有网络服务集成经验(SOAP、REST、JSON、XML)
· 对OO编程和设计模式有很好的理解
· 熟悉Android平台(意图、服务、线程、活动、片段等)
· 对移动应用开发的深刻理解
早上大约有 70 人到达了 MMT 古尔冈办公室。
第一轮:
– 项目相关问题
– android 的基本问题,如内容提供者、意图过滤器、广播接收器等
– HashMap 的内部实现
– 服务/意图服务和广播注册的深层问题。
– 回收者视图的内部工作。
-给定的阵列A [],编写一个函数,偏析偶数和奇数。函数应该先放所有偶数,然后是奇数。
第二轮:
– 给定一个大小为 N 的数组,其中包含范围 [1 N-1] 中的值,找到所有缺失的数字,在 O(n) 中做一个。与工作代码。
提示:通过使其消极。
– 如何实现 LRU 缓存方案?应该使用什么数据结构?
能够通过讨论来回答 LRU 缓存,但是当我编写它的代码时,他感到困惑,告诉我只给出算法/步骤。似乎没有被说服。
HR 告诉我,审查对一切都有好处,但不是 LRU 代码。我告诉她面试官很困惑。于是她又安排了一轮面试。
第三轮:
非常好的伙计们,良好的知识会给你很大的信心。
– 如何在准确的时间/日期触发通知。不使用警报 api。
– 字符串缓冲区字符串生成器,如何使类不可变。
– 假设一个类 A,它有一个成员变量 Class B。你必须使类变量不可变。
提示:当用户调用 getB() 时返回 B 对象的克隆。
– M 权限、危险权限等。
– 在给定大小的组中反转链接列表
第四轮:
移动架构负责人
– 用于在手机中显示/存储联系人的内部数据结构
提示:尝试
– 使用条件实现新语言 if a > b do this else do this
如果否则, boolean , ternary 等不会在这种新语言中给出。
解决方案:使用按位运算符切换大小写
c = a – b;
案例0:
两者都是平等的,打破;
默认:
案例 c << 32:
消极的
默认值:正
– 树遍历的前后顺序
问其他人的其他问题:
树的左/右面
最大/最小堆栈
他们只选择2人。
之后我被告知我被选中了,他们会在 CEO 批准后要求提供所需的文件。
等了 4 天后,我被告知需要 4 年的经验,但你只有 3 年 8 个月,不包括 6 个月的实习生。
当我争论为什么你首先将我列入候选名单时。他们又进行了一轮面试。
第五轮:
安卓基本问题
在数组中找到随机数(假设 1-10),就像每次得到一个数字(假设 6)一样,下一个随机数将是 6 以外的任何数字。
Sol:当你得到任何数字时,将该位置与数组的列表索引交换
例如:1 2 3 4 5 6 7 8 9 10 => rand(1,10) => 6
下次
删除 6 并放置最后一个索引值 10
1 2 3 4 5 10 7 8 9 => rand(1,9) => 9 直到数组为空
一轮完美,然后 HR 告诉我,这一轮审查是平均的,第二轮审查是负面的。所以我们不能再进一步了。
有非常糟糕的经历。