Android面试(三)

一.线程的并行和并发有什么区别

并发:指应用能够交替执行不同的任务

并行:指应用能够同时执行不同的任务

两者区别:一个是交替执行,一个是同时执行.

二.编程:工厂模式或冒泡排序

三.singleTask和singleTop的区别

Activity的四种加载模式:

1、standard :系统的默认模式,一次跳转即会生成一个新的实例。

2、singleTop:singleTop 跟standard 模式比较类似。唯一的区别就是,当跳转的对象是位于栈顶的activity(应该可以理解为用户眼前所 看到的activity)时,程序将不会生成一个新的activity实例,而是直接跳到现存于栈顶的那个activity实例。

3、singleTask: singleTask模式和后面的singleInstance模式都是只创建一个实例的。在这种模式下,无论跳转的对象是不是位于栈顶的activity,程序都不会生成一个新的实例(当然前提是栈里面已经有这个实例)。

4、singleInstance: 设置为 singleInstance 模式的 activity 将独占一个task(感觉task可以理解为进程),独占一个task的activity与其说是activity,倒不如说是一个应用,这个应用与其他activity是独立的,它有自己的上下文activity。

四.DBHelper和Content Provider各在什么情况下使用

五.LinkedList和ArrayList的底层是什么数据机构,以及区别

六.jvm有几个模块

JVM内存的划分有五片:

       1.   寄存器;

       2.   本地方法区;

       3.   方法区;

       4.   栈内存;

       5.   堆内存。

七.Socket和HttpUrlConnection在Android的区别

八.String的“+”和StringBuffer.append的区别

str += "a"; 你要分解来看:
str = str + "a";
而str + "a" 会创建一个新的String对象,就慢了。你要知道String对象一旦创建就是不能被改变的,要达到字符串拼接的效果,就得不停创建新对象。
StringBuilder直到最后sb.toString()才会创建String对象,之前都没有创建新对象(在你的例子中是的,但是如果你append的总长度超过一定范围——默认是16——就会创建一个新的数组,来装下更多的String)

九.Service的生命周期

采用start的方式开启服务
onCreate()--->onStartCommand()onStart()方法已过时) ---> onDestory()

采用bind的方式开启服务
onCreate() --->onBind()--->onunbind()--->onDestory()

十.静态广播和动态广播

1、动态注册的广播永远要快于静态注册的广播,不管静态注册的优先级设置的多高,不管动态注册的优先级有多低

2、生存期,静态广播的生存期可以比动态广播的长很多,因为静态广播很多都是用来对系统时间进行监听,比如我们可以监听手机开机。而动态广播会随着context的终止而终止

3、动态广播无需在AndroidManifest.xml中声明即可直接使用,也即动态;而静态广播则需要,有时候还要在AndroidManifest.xml中加上一些权限的声明

十一.基本数据类型以及长度


十二.intentService

十三.递归算法

十四.Linux怎么创建文件、目录

十五.堆和栈的区别

1.栈内存存储的是局部变量而堆内存存储的是实体;

2.栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;

3.栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值