1,酷狗 - android开发(广州,2015年05月)(转)

  • 面试经历:

  • 面的新浪电影的android开发。一来先做笔试题,不多,前半部分是java基础题, 考些类初始化的顺序,静态块与构造函数的调用顺序,java的内存相关的堆栈知识,然后是android的一基础,最后一道算法题。如果好好准备的话,这些都不难。我面试过程表现的很没自信,也很没想法的样子,面试官很能说,全程希望我多向他问问题,也不枉跑这么一趟。其实吧我觉得还是自己太没自信了,表现得很没抗压能力,先不说技术面,不能好好聊天就错失机会了。

  • 面试官提的问题:

  • 1、 HashMap和HashTable的区别?
    2、 BroastcastReceiver的两种注册方式?有什么区别?
    3、 StringBuffer、StringBuider、String的区别?
    4、 线程同步有几种方式?
    5、 线程有多少种状态?各种状态之间怎么切换?
    6、 线程锁有几种?
    7、 Handler、AsyncTask的区别?
    8、 Android开发怎么进行调试?
    9、 对NDK的理解?
    10、 JSON和XML的区别?
    11、 Activity有几种启动方式?
    面完之后等了会,然后告知我项目经理不在,让我回去等消息,面试结束。整个过程花了大概2个小时。

    面试官提出的问题
    问题1:
    Activity有几种启动方式?
    回  答:
    4种,standard、singleTop、singleTask、singleInstance

  • 应聘途径:网上申请
    面试内容:1对1面试
    面试难度:难度一般
    面试感觉:一般

 

 

 

 

 

 

 

5,java中,每个线程都需经历新生、就绪、运行、阻塞和死亡五种状态,线程从新生到死亡的状态变化称为生命周期。
用new运算符和Thread类或其子类建立一个线程对象后,该线程就处于新生状态。
  新生--->就绪:通过调用start()方法
  就绪--->运行:处于就绪状态的线程一旦得到CPU,就进入运行状态并自动调用自己的run()方法
  运行--->阻塞:处于运行状态的线程,执行sleep()方法,或等待I/O设备资源,让出CPU并暂时中止自己运行,进入阻塞状态
  阻塞--->就绪:睡眠时间已到,或等待的I/O设备空闲下来,线程便进入就绪状态,重新到就绪队列中等待CPU。当再次获得CPU时,便从原来中止位置开始继续运行。
  运行--->死亡:(1)(正常情况下)线程任务完成
(2)(非正常状况)线程被强制性的中止,如通过执行stop()或destroy()方法来终止一个线程.

 

 

7,1  AsyncTask实现的原理,和适用的优缺点

AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.

使用的优点:

l  简单,快捷

l  过程可控

使用的缺点:

l  在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来.

2 Handler异步实现的原理和适用的优缺点

在Handler 异步实现时,涉及到 Handler, Looper,  Message,Thread四个对象,实现异步的流程是主线程启动Thread(子线程)àthread(子线程)运行并生成Message- àLooper获取Message并传递给HandleràHandler逐个获取Looper中的Message,并进行UI变更。

使用的优点:

l  结构清晰,功能定义明确

l  对于多个后台任务时,简单,清晰

你可能感兴趣的:(1,酷狗 - android开发(广州,2015年05月)(转))