小米android开发实习
一面:3.18
- java初始化时的流程;
- jvm内存分布;
- Object中有什么方法;
- sleep与wait的区别;
- Android了解哪些多进程,Binder机制的工作原理,AIDL;
- Activity的启动模式;
- Activity的生命周期;
- java引用类型,哪一种可以用于内存泄漏
- Android中的ArrayMap了解么
- Java深拷贝与浅拷贝
- Android消息机制
- 代码方面:
- 手写DCL单例模式
- 两个栈实现队列
二面 3.19
- 1.java基本类型,以及基本类型所占的字节,以及boolean在jvm中怎么存储;
- 2.View的事件分发原理,问了很多具体的,比如onTouch,onClick以及onTouchEvent的优先级,如何阻止滑动冲突,父View与子View之间的消耗View关系;
- 3.Activity的生命周期,同时包括启动模式、onRestoreInstanceState与onSaveInstanceState;
- 4.HashMap的工作原理,hash函数的原理,resize函数的原理,与HashTable的区别,key是否可以为null;
- 5.syncronized修饰类和修饰代码块有什么区别
- 6.Service的启动方式,以及区别在哪里;
- 7.java异常捕捉,finally和return的关系,Android中有哪些异常捕捉;
- 8.sleep与wait的关系,线程状态,以及先start一个线程后又start一个线程会出现什么错误。
- 9.android新特性有了解么
- 10.java中保证线程安全的方法有哪些;
- 11.Android中的ContentProvider
- 12.Android中的ActivityContext和ApplactionContext
代码方面:
- 写一下ViewGroup中遍历所有view的算法(N叉树的层序遍历)