安卓开发面试刷题

1.创建线程的方式有哪些?

1)继承Thread类

2)实现Runnable接口(无返回值)

3)实现Callable接口(有返回值)

4)线程池创建

2.StringBuffer和StringBuilder有什么区别?

1)可变性:一般都与String进行比较,因为String是不可变的,但是StringBuilder和StringBuffer是可变的。

2)线程安全性:StringBuffer对内部方法加了Synchronize同步锁,StringBuilder是不安全的。

3)性能:StringBuilder的性能比StringBuffer高,因为StringBuilder没有同步锁。

3.并行和并发的区别

并行:在同一时间段,发起多个请求访问不同资源,同时执行,互不影响,强调同一时间执行

并发:在同一时间,多个请求同时访问同一个资源,强调访问同一资源

4.Callable和Runnable的区别

1)Callable规定重写方法是Call(),Runnable规定重写方法是Run();

2)Callable任务执行完成后有返回值,Runnable任务执行完成后无返回值;

3)call方法可以抛出异常,但是run方法不可以;

4)运行Callable任务可以获取一个Future对象,通过Future对象可以拿到结果,也可以取消任务。

5.MVC、MVP、MVVM的优缺点

1)MVC:Model-View-Controller

MVC是通过controller的控制去操作model层的数据,并且返回给view层展示。

工作原理:用户触发事件->view层发送指令到controller层->controller层通知model层更新数据->数据更新完成后显示在view上。

优点:

通过controller控制全局,同时将view和model的变化分开,对复杂混乱的项目结构,有明确的组织方式。

缺点:

a.当业务逻辑增加时,大量的逻辑代码放进了controller中,导致controller越来越臃肿,后期维护成本提升。

b.没有区分业务逻辑和业务展示,单元测试不友好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值