2018-05-23 笔试题

2018-05-24  本文已影响0人  浮夸初衷

1。Android的生命周期:

onCreate(第一次被创建的时候调用)

onStart(这个方法在活动由不可见变为可见的时候调用)

onResume(这个方法在准备好和用户进行交互的时候调用)

onPasue(这个方法在系统准备去启动或者恢复另一个活动的时候调用)

onStop(这个方法在活动完全不可见的时候调用)

onDestory(这个方法在销毁之前调用)

onResrart(这个放在活动由停止状态变为运行状态之前调用)

2。Android启动模式:

四种:

standard  每次激活都会创建Activity实例,并存放到任务栈

singTop 如果Activity自己激活自己,即任务栈栈顶就是该Activity,则不需要创建,其余情况都要创建Activity实例。

singTask 如果要激活的那个Activity在任务栈中存在该实例,则不需要创建,只需要把此Activity放入栈顶,并把该Activity以上的Activity实例都pop。

singleInstance 如果应用任务栈中创建了MainActivity实例,如果应用2也要激活MainActivity,则不需要创建,两个应用共享Activity实例

3。Android常用布局有哪些?

(RelativeLayout)相对布局  (AbsoluteLayout)绝对布局   (FrameLayout)帧布局 (TableLayout) 表格布局   (LinearLayout)线性布局

4。Service的启动方式有哪些?

通过startServer启动Server

通过bingServer启动Server

5。Broadcast的注册方式和区别是什么?

代码中注册与在AndroidManifest中注册

静态注册:在AndroidManifest.xml注册,android不能自动销毁广播接收器,也就是说当应用程序关闭后,还是会接收广播。 

动态注册:在代码中通过registerReceiver()手工注册.当程序关闭时,该接收器也会随之销毁。当然,也可手工调用unregisterReceiver()进行销毁

6。Java的匿名内部类在Android的应用有哪些?

7。什么是ANR,如何产生的,如何避免?

ANR的全称是 application not response 即应用程序无响应

产生原因:由于主线程有很多重要事情要做,比如响应点击事件等。如果在主线程里做了太多耗时的操作,则有可能引发ANR。

如果你想模拟的话,比如在主线程里让主线程休眠6秒以上。Thread.sleep(6000);则会引发此状况。所以在4.0以上版本,如果在主线程里进行网络访问的操作,则会报错。

8、简单介绍MVP框架,跟MVC的区别是什么?有哪些优势?

MVP---全称 Model-View-Presenter,即模型-视图-层现器

P:交互中间人 (Presenter主要作为沟通View与Model的桥梁,它从Model层检索数据后,返回给View层,使得View与Model之间没有耦合,也将业务逻辑从View角色上抽离出来) 

V:用户界面 (View通常是指Activity、Fragment或者某个View控件,它含有一个Presenter成员变量。通常View需要实现一个逻辑接口,将View上的操作转交给Presenter进行实现,最后,Presenter 调用View逻辑接口将结果返回给View元素。)

  M:数据的存储 (Model 角色主要是提供数据的存取功能。Presenter 需要通过Model层存储、获取数据,Model就像一个数据仓库。更直白的说,Model是封装了数据库DAO或者网络获取数据的角色,或者两种数据方式获取的集合。)

MVC--全称Model-View-Controller,即模型-视图-控制器。

MVP模式减少了Activity的职责,简化了Activity中的代码,将复杂的逻辑代码提取到了Presenter中进行处理,模块职责划分明显,层次清晰。与之对应的好处就是,耦合度更低,更方便的进行测试。

9、简述HashMap的实现原理

一句话理解HashMap:HashMap就是Hash表的Map实现。 Hash表就是Hash数组,Map实现是指实现了Map接口

10、ArrayList和LinkedList的区别,以及应用场景是什么?

1.ArrayList是实现了基于动态数组的数据结构,Linkedlist基于链表的数据结构

2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinledList要移动指针

3.对于新增和删除操作add和remove,LinedList比较占优势因为ArrayList要移动数据

11.算法题:打乱数组中元素的顺序


12。设计模式题,举例Androd常用的设计模式,并写出来

23种设计模式 

常用的分别是:单例模式    工厂模式    观察者模式   代理模式     命令模式    合成模式

上一篇下一篇

猜你喜欢

热点阅读