android面试题
来源:互联网 发布:zabbix windows 模板 编辑:程序博客网 时间:2024/06/03 03:39
1.String a = "a"与String a = new String("a")区别?
String str = “a”; 创建了一个对象(字符串常量池中)
String a = new String("a") 创建了两个对象,new String()和“a”对象
2.a.equals("a")与a=="a"区别?
equals 默认比较对象的值
== 默认比较对象的地址
3.接口和抽象类的区别?
语法层面:
1. 抽象类可以提供方法的实现细节,接口只能做方法的声明。
2. 抽象类中成员变量可以式各种类型,接口中只能是public static
3. 一个类只能继承一个抽象类,一个类可以实现多个接口
4. 抽象类中可以有静态块和静态方法,接口中不能有。
设计层面:
1.抽象类是对一种(类)事物的抽象(属性,行为),对事物的整体进行抽象。
接口是对行为的抽象,是对类局部(行为)进行抽象。继承是一种is-a,接口式一种has-a的关系。
2.抽象类作为许多子类的父类,是一种模板式的设计,接口是一种行为规范,是一种辐射式设计。
4.简要说明MVC开发模式?在Android中的应用?
画图(箭头)
M:业务处理类(数据库操作,网络操作)
C:Activity
V:布局文件
5.Android系统分层?Library层起什么作用?
Library层提供了一系列的动态库和静态库,通常使用C或者C++开发,实现底层访问接口,提供接口给Framework调用。通过NDK实现调用。
6.ListView的优化方式有哪些?
复用convertView,减少findViewById的次数。
使用ViewHolder缓存item条目
ListView中数据分批加载或者分页加载
7.Activity生命周期?为什么Activity要这么设计?这样设计有什么好处?
Activity生命周期各种回调方法的设计,是为了确保提供一个流畅的用户体验,在Activity切换时,以及Activity停止或者销毁的意外中断情况下,保存好Activity状态
8.Activity与Fragment之间相互传值方式有几种,分别是什么?
Activity传值给Fragment:通过Bundle对象来传递,Activity中构造bundle数据包,调用Fragment对象的setArguments(Bundle b)方法,Fragment中使用getArguments方法获取Activity传递过来的数据包取值。
Fragment传值给Activity:
在Fragment中定义一个内部回调接口,Activity实现该回调接口,Fragment中获取Activity的引用,调用Activity实现的业务方法。接口回调机制式Java不同对象之间数据交互的通用方法。
9.如果Activity崩溃,如何恢复数据?
onPause()中保存数据—适合持久化数据,onCreate()中恢复数据
onSavaInstanceState()保存数据,onRestoreInstanceState()或者onCreate()中恢复数据。
10.Activity的加载模式有哪些?请简要说明
1.standard:默认启动模式,每次都会创建一个新的实例,新的Activity覆盖在原Activity上。
2.singleTop:如果指定启动的Activity设置未SingleTop模式,系统会判断当前栈顶Activity是不是要启动的Activity。如果是不创建新的实例,直接引用这个Activity,调用该Actvity的onNewIntent()方法。如果不是,创建新的Activity实例。
3.singleTask:如果指定启动的Activity设置未SingleTask模式,系统检测整个Task里面是否有改Activity,如果有,将该Activity置于栈顶,并将该Activity以上所有Activity全部销毁。
4.singleInstance:新建一个Task,将要启动的Activity放入这个Task中,该Task中只有一个Activity的实例。
11.通过Intent传递一些二进制数据的方法有哪些?显式意图和隐式意图的区别?
实现Serializable 和 Parcelable接口
显式意图:通过指定Intent组件名称来实现,明确指明要激活的组件名称。一般在应用内部使用。
隐式意图:通过Intent Filter来实现,一般用在没有明确指出目标组件名称的前提下使用action,category,data来处理意图,用在不同应用之间。
12.如何让Service不被Kill?
提高Service所属进程的生命周期,可以在启动Service的时候使用startForeground()方法将该进程提高为前台进程。
13.Service有几种启动方式,区别是什么?各有什么使用场景?
startService(Intent i); 播放音乐,下载操作,Activity启动Service后,如果被销毁,Service仍然运行。
bindService(Intent i,ServiceConnection conn,int flag); 进程通信(或者内部方法调用)Activity绑定Service后,如果被销毁,Service也会销毁。
14.ContentProvider的作用是什么?如何实现的?
应用之间共享数据(CRUD)的一种机制
1.定义自己的ContentProvider类,继承ContentProvider,实现相关方法。
2.在AndroidManifest.xml中注册该ContentProvider,绑定一个URI
3,其它应用使用ContentResolver传入URI来实现操作ContentProivder
15.说说Handler机制,Looper,MessageQueue,Message之间的关系?
16.Android中ANR是什么?如果避免ANR?
Application Not Response应用程序没有响应
以下情况会出现ANR
1.应用界面5秒内未响应
2.BroadcastReceiver的onReceiver方法10秒内没有处理完。
3.绑定式Service20秒内没有绑定成功。
ANR出现的原因是阻塞了主线程,以上情况中,耗时任务使用子线程完成。
17.android 中线程与线程,进程与进程之间如何通信?
线程和线程通信:Thread+Handler
进程与进程通信:AIDL,BroadcastReceiver,ContentProvider,文件共享,Socket,Bundle
18.请介绍一下Android数据存储方式有几种,请简述?
http://blog.csdn.net/u013488580/article/details/42524469
19.Android动画有哪几类?他们的特点和区别是什么?
1.Drawable Animation:加载一系列图片资源来创建动画,创建不同的图片序列,顺序播放,类似胶片电影。
2.View Animation:通过对View的渐变,缩放,位移,旋转实现动画效果,只是改变了View的绘制效果,实际属性值没有改变。
3.Property Animation:通过改变View的属性值实现View动画。
20.用Java实现一个Singleton单例模式?
public class Singleton{
//定义Singleton类型的变量
private static Singleton instance;
//提供私有构造方法,防止通过new的方式创建对象
private Singleton(){
}
//定义返回当前类对象的方法
public static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
- Android面试题
- Android 面试题积累
- android的面试题
- Android面试题
- android 面试题
- Android面试题
- android面试题
- Android面试题
- 转 android面试题
- android面试题总结
- android面试题
- Android 面试题1
- android面试题整理
- Android面试题
- Android 面试题积累
- Android面试题
- android面试题
- android面试题整理
- android开发中对图片的处理方式汇总
- HTML标签嵌套规则
- 学期总结
- linux环境变量
- 常见的序列化协议
- android面试题
- [Java并发包学习二]Executors介绍
- LeetCode27. Remove Element
- OpenGL中的VAO与VBO
- #pragma pack(n) ........ #pragma pack()
- Android studio下jni的配置和第一个helloword程序
- 第十六周项目1-验证算法(7)归并排序
- Unable to Download App (app下载出现的问题)
- json/Gson的学习