美文网首页
2018-05-23 笔试题

2018-05-23 笔试题

作者: 浮夸初衷 | 来源:发表于2018-05-24 17:56 被阅读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种设计模式 

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

    相关文章

      网友评论

          本文标题:2018-05-23 笔试题

          本文链接:https://www.haomeiwen.com/subject/gxbsjftx.html