今天去慕课网面试,是一朋友推荐过去的;感觉面的还可,可是面我的那个经理给上级反馈的是:一般。回到家中把今天面试的问题做如下归类。
1> Android在4.0以后出现了Fragment的概念;相比于Activity的优势是什么?其实Fragment生命周期还是依赖于Activity的,一般都基于FragmentActivity中的FragmentManager来管理Fragment的生命周期。
2> 图片缓存问题,关键点:LruCache缓存,SD卡缓存,线程池管理下载线程队列任务,当activity销毁掉后,还在下载的任务记得取消。
3> Activity实例在任务栈中,被系统回收了,onSaveInstanceState和onRestoreInstanceState()方法的调用
4> Activity的4中启动模式;其中singleInstance模式:当Activity被赋予这种启动模式后,此activity是独占一个任务栈的,任务栈的ID是和前一个activity的任务栈ID不一致的。那么问题来:如果从A启动到B(singleInstanc),再从B启动C,当C被finish后,是回退到A还是回退到B(因为C和A是在同一个任务栈中的)?经过验证:从C是回退到A;拓展一下思路,如果C的启动模式也是singleInstance,那么该回退到哪儿?实践证明:是回退到B。
5> HttpUrlConection和UrlConection的区别
6> 对Actitiy的onCreate(),onStart(),onResume()的区别,查阅官方文档。
7> 对于Thread的sleep()方法和wait()方法的区别;对于这二者的区别我们聊的时候做了一些探索性的思考,wait()方法是要通过object的notify()或notifyAll()方法来唤醒。但是对于sleep()方法,过了规定的时间,线程不一定能接着抢占到Cpu资源接着运行,在sleep期间,其他线程是可以抢占此线程的信号量的?有待考证。