技术面试经(1)

最近一直很忙,终于等到今天samsung面完了才有时间停下来写写面经,这些都是我的面试题,不过答案是我自己的,希望大家来指正,给各位正在挣扎的童鞋们加加油哈!!


   1、面向对象的特征(2B的题目)


         抽象、封装、继承、多态性【要了解具体的含义】


   2、int与Integer的区别:


         int是原始数据类型,Integer是int的封装类,Integer是引用类型;int基本数据运算速度快,而在map、list等只能装Object的容器中,就只能使用Integer等外覆类。


   3、ArrayList、Vector、LinkedList的区别:


         Collectiion接口派生了两个接口:List、Set。其中,ArrayList、Vector与LinkedList都是实现了List接口的类。ArrayList、Vector都是使用数组方式存储数据,因此查找数据操作快而插入数据慢,然而Vector使用了Synchronized方法进行线程安全处理,所以性能上比ArrayList差;另外,LinkedList使用双向链表存储数据,因此查找数据操作慢而插入数据快,同时,LinkedList是非线程安全的。


   4、sleep()和wait()的区别:


         sleep是线程类的方法,不会释放对象锁;而wait是Object类的方法,会释放对象锁。【腾讯一面】


   5、启动线程应该调用start(),而不是run(),调用start()意味着它可以由虚拟机JVM调度执行,并不意味着线程会立即执行,实现并发操作。【腾讯一面】


   6、抽象类和接口的区别:


        抽象类可以有普通数据成员和非抽象方法。而 接口中不能有普通数据成员,只能够有静态而且不能被修改的数据成员,会隐式声明为static和final。而且接口中的方法一定是抽象方法。抽象类可以赋予非抽象方法的默认行为,即方法的具体实现。而接口中不能赋予方法的默认实现。Java中只能有单继承但是可以有多实现。【百度一面】


  7、Android中的数据存储方式:


       SharePreference方式;文件存储方式;SQLite方式;ContentProvider方式;网络存储方式。【腾讯一面】


  8、Android四大组件:


      Activity;Service;BroadcastReceiver;ContentProvider。


      Service是一个具有较长生命周期但是没有用户界面的程序。一般由Activity启动,但是并不依赖于Activity,即当Activity生命周期结束时,Service仍会继续运行,直到自己生命周期结束为止。Service启动方式有两种:A、调用startService方式启动Service时,会依次调用onCreate和onStart方法来启动Service;调用stopService方法来结束Service时,又会调用onDestroy方法来结束Service;B、调用bindService方法启动Service时,会依次调用onCreate和onBind方法来启动Service,调用unbindService方法结束时,又会调用onUnbind和onDestroy方法。


     BroadcastReceiver用来接收系统或者某个应用程序所发送的广播消息。有两种注册方式:在代码中注册、在配置文件中注册。


     ContentProvider是用来实现应用程序之间数据共享的类,它为共享数据定义一个URI,然后应用程序通过Context获得ContentResolver并将数据的URI传入即可。【网易笔试】


   9、Android中Activity的四种加载模式:


       Standard:标准模式,一调用startActivity方法就会产生一个新的实例。


       SingleTop:当有一个实例位于Activity栈的顶部时,就不产生新的实例。如果不位于栈顶,就产生一个新的实例。


      SingleTask:会在一个新的task中产生这个实例,以后每次都是调用这个实例,而不产生新的的实例。即一个task中不会出现重复的Activity实例。


      SingleInstance:跟SingleTask很类似,在这个模式下,每个task中只有一个Activity的实例,不能有其他的实例。【新讯电面】


   10、进程与线程的区别:


       进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度的基本单位。线程不能够独立执行,必须由应用程序提供多个线程的执行控制。进程拥有独立的可执行代码和数据的内存空间,而线程中的多个线程共享数据内存空间。【百度一面】

你可能感兴趣的:(android,面试,vector,service,Integer,存储)