您的位置:首页 > 职场人生

Android 面试题整理(一)

2016-11-04 22:56 225 查看

1、请简述JAVA引用中的’强引用’、‘弱引用’、‘虚引用’的用法和回收时机

1.强引用 – GC不会回收(必需品)

2.软引用 – 内存不够就回收,内存够的话就不会回收。(可有可无)

3.弱引用 – GC在扫描的时候,一旦发现即刻回收。

4.虚引用 – 随时都会被回收

2、请用JAVA语言实现一个简单的单例模式

public class SingleTon{

private SingleTon(){}
public static SingleTon instance;
public SingleTon getInstance(){
synchronized(SingleTon.class){
if(instance == null){
synchronized(SingleTon.class){
instance = new SingleTon();
}
}

}
return instance;
}
}


3、JAVA线程的sleep()、wait()、notify()、yield()方法的区别

sleep() 线程休眠一段时间,一段时间结束后,线程进入可执行状态,等待CPU调度。休眠期间,不释放持有的锁。

wait() 线程休眠一段时间,如果设置参数,时间到时,线程自动进入可执行状态。若没有,则需要notify()方法唤醒。wait和notify都是针对this对象的,调用wait之后,会释放加载对象上的锁。

yield()方法也是线程放弃执行的权限,让相同优先级或高优先级的线程先执行

4、什么是Android ARN? Android ARN 有几种类型?如何定位ANR?

Android ANR 即程序无响应异常。
Android ANR 一般有3种类型:
KeyDispatchTimeout(5 sceonds) 按键或触摸事件在特定时间无响应
BoardcastTimeOut(10 sceonds) BoardcastReceiver 在特定的时间内无响应
ServiceTimeout(20 seconds) Service在特定的时间内无法处理完成
解决ANR的姿势:
1.查看LOG,获取ANR类型
2.查看分析trace.txt文件(需root)
chrom 777 /data/arn
rm /data/arn/traces.txt
ps
kill -3 PID
adb pull data/anr/traces.txt ./mytraces.txt


5、简要描述Activity和Fragment的关系

Activity 是指一个页面,Fragment指的是碎片化的页面,Fragment依赖于Activity存在。他们之间的声明周期非常类似
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: