CETV一面:40分钟
(1)项目问得多,问功能,代码有哪些亮点,怎么实现侧滑菜单的 等等。
(2)java的引用是有什么作用
(3)引用是什么,分别有哪几种,描述下他们的区别,弱引用用在什么地方。
(4)熟悉的设计模式,单例模式怎么实现,这种模式用在什么地方
(5)android的四大组件
(6)fragment的生命周期,
(7)内存泄露和内存溢出什么区别:http://blog.csdn.net/buutterfly/article/details/6617375,结果memory leak会最终会导致out of memory!
(8)写代码:给两个字符A和B,打印B在A中出现的次数
(9)对于他们公司,有什么需要问的
(3)、有没有使用过Android的开源库,或者开源控件:Image-Loader,okhttp, SlidingMenu,volley:Volley是针对数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。http://blog.csdn.net/fenghai22/article/details/44061307
(1)volley框架看过没,讲下框架原理和源码
(2)android动态打补丁如何操作
(3)如何做到实时推送,答的是长连接,发送心跳包,维持service,守护进程来保持service不被杀死
(4)了解过html5和hybird混合开发没
(5)讲下RXJAVA吧
阿里巴巴一面(2016.3.17)
(1)如何开启多个网络异步请求
(2)线程池内线程的数量如何确定
(3)说说OKHTTP的实现
(4)UIM的实现
(5)如何学习android
(6)前沿技术
(7)完全二叉树、满二叉树、平衡二叉树的区别
(8)arraylist与hashmap的底层实现
(9)converview一些知识点
(10)oom如何发现
(11)handler出现oom如何解决:handle设为静态类和弱引用的方法解决这种问题。在关闭Activity的时候停掉你的后台线程:https://my.oschina.net/rengwuxian/blog/181449
(12)页式管理和段页式管理出现缺页情况怎么办
蘑菇街一面(2016.3.18)——蘑菇街忘了很多
(1)介绍自己和项目
(2)在项目中遇到的问题如何解决
(3)UIM的实现
(4)几个算法题:给个链表,寻找倒数第K个节点;给一个升序数组和数值,找到数组内的两个数值相加等于给定数值
(5)tcp和udp什么区别
CVTE一面(2016.3.21)
(1)介绍一下自己最满意的项目
(2)讲一下mvp,mvp和mvc区别:http://blog.csdn.net/gjnm820/article/details/51733361
(3)讲一下用过的开源项目,说一下如何实现
(4)设计模式
(5)Asynctask实现:使用AsyncTask类,以下是几条必须遵守的准则:Task的实例必须在UI thread中创建;execute方法必须在UI thread中调用;不要手动的调用onPreExecute(), onPostExecute(Result),doInBackground(Params...), onProgressUpdate(Progress...)这几个方法;该task只能被执行一次,否则多次调用时将会出现异常;http://www.cnblogs.com/devinzhang/archive/2012/02/13/2350070.html
(6)线程池如何使用
(7)如何实现多进程,进程间如何通信,具体讲一下 :进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,简而言之,一个程序至少有一个进程,一个进程至少有一个线程.但是线程不能够独立执行,必须依存在应用程序中
(8)surfaceView : surfaceView是在一个新起的单独线程中可以重新绘制画面,而View必须在UI的主线程中更新画面。
(9)如何进行界面优化:减少界面刷新次数,把io操作从主线程中剥离出来。
(10)如何实现缓存 :对象序列化到本地
(11)三分钟写一个算法:给一句话the sky is blue 实现逆转 blue is sky the
来一发美团的Android实习内推面经吧。
一面:
1、Activity的生命周期
2、onSaveInstanceState和onRestoreInstanceState调用的过程和时机,onNewIntent方法:当某个activity变得“容易”被系统销毁时,该activity的onSaveInstanceState就会被执行,除非该activity是被用户主动销毁的,例如当用户按BACK键的时候。http://android.blog.51cto.com/268543/634646/,singleTop:
可以有多个实例,但是不允许多个相同Activity叠加。即,如果Activity在栈顶的时候,启动相同的Activity,不会创建新的实例,而会调用其onNewIntent方法。
3、fragment的生命周期,和Activity如何进行通信:通过回调方式来进行通信。在fragment中添加一个接口,activity中实现这个接口,当在fragment中点击事件的时候,调用接口实例,传递参数给activity这样就实现了fragment传递数据给activity。http://blog.csdn.net/guozh/article/details/25327685
4、Android的事件分发机制,ACTION_DOWN和后续事件如何消耗
5、Activity的启动方式:四种启动方式:standard,singleTop,singleTask,singleInstance::http://blog.csdn.net/shinay/article/details/7898492
6、View的绘制流程,MeasureSpec如何工作,父的MeasureSpec和自己的LayoutParams
7、广播的两种注册方式
8、数据 库如何升级(懵逼)
9、Handler Looper的使用方式,实现机制,设计的原因
10、HandlerThread有没有了解(很神奇的我完全忘了当时是怎么答的了)
11、ThreadLocal是干嘛的,使用的地方
12、软引用和弱引用,虚引用的区别:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它 所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。而软引用是指只有内存不足时才会回收软引用对象。虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收。
13、熟悉哪些设计模式
14、Sqlite的一些问题
15、Activity A调用Activity B时,A调用什么函数(onPause)
然后说让我等通知,然后10分钟就打过来约二面。。。