- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Android高频面试题及参考答案
一、基础语法与Android核心组件
问题:Java和Kotlin的空安全有什么本质区别?实际开发中怎么避免空指针?
答案:Java是编译时不强制空检查,运行时可能抛出NPE,依赖开发者手动判空;Kotlin把空类型显性区分(String非空、String?可空),编译期就拦截潜在空指针,强制开发者处理可空类型。实际开发中,Kotlin里用?.安全调用、?:空值兜底、!!非空断言(谨慎用),Java里用Objects.requireNonNull()或Optional类,同时接口返回值避免随意返回null,用空集合/空对象模式替代。
问题:Activity的启动模式有哪些?singleTask启动时,任务栈是怎么变化的?
答案:启动模式分standard、singleTop、singleTask、singleInstance四种。singleTask是“单任务栈”模式:如果目标Activity所在的任务栈已存在,会把该任务栈调到前台,同时销毁栈中目标Activity上方的所有Activity;如果任务栈不存在,会新建任务栈并放入目标Activity。比如浏览器首页用singleTask,避免重复创建多个首页实例,节省内存。
问题:Service和Thread的区别是什么?什么时候用Service,什么时候用Thread?
答案:核心区别是生命周期和运行场景:Thread是底层线程类,用于执行异步耗时操作,没有生命周期管理,退出后线程终止;Service是Android四大组件之一,运行在主线程(默认),有完整生命周期(onCreate-onStartCommand-onDestroy),即使Activity销毁也能继续运行,受系统管控。场景:后台下载文件、播放音乐,用Service(配合子线程,因为Service本身不耗时);Activity内的临时异步操作(比如加载列表数据),用Thread或Kotlin协程,避免Service带来的组件开销。
二、布局与性能优化
问题:ConstraintLayout相比LinearLayout、RelativeLayout的优势是什么?实际开发中怎么优化布局层级?
答案:优势:①支持扁平化布局,减少嵌套层级(比如LinearLayout嵌套实现的复杂布局,ConstraintLayout一层就能完成);②灵活的约束规则,支持百分比、链布局、goneMargin等,适配更方便;③渲染效率高,测量和布局过程更简洁。优化布局层级:①优先用ConstraintLayout替代多层嵌套;②避免过度使用ViewGroup(比如多余的LinearLayout包裹);③用include复用公共布局,merge减少根布局嵌套,ViewStub延迟加载不常用布局(比如详情页的评论区);④减少wrap_content的使用(尤其是嵌套中),尽量用match_parent或固定尺寸,降低测量次数。
问题:ListView和RecyclerView的区别是什么?RecyclerView怎么实现复用和性能优化?
答案:区别:①复用机制:ListView仅复用ItemView,RecyclerView复用ViewHolder(包含ItemView和控件引用),减少findViewById开销;②功能扩展性:RecyclerView支持LayoutManager(线性、网格、瀑布流)、ItemDecoration(分割线)、ItemAnimator(动画),ListView需自定义;③性能:RecyclerView默认开启复用,ListView需手动设置setOnScrollListener控制加载。RecyclerView优化:①复用ViewHolder,避免在onBindViewHolder中频繁findViewById;②图片加载用Glide/Picasso等框架,设置占位图、内存缓存,避免OOM;③Item布局层级尽量少,避免过度绘制;④大数据量时用分页加载,避免一次性加载所有数据;⑤避免在onBindViewHolder中做耗时操作(比如计算、网络请求),提前处理数据。
三、内存与性能优化
问题:Android中内存泄漏的常见场景有哪些?怎么检测和避免?
答案:常见场景:①静态Activity/Context引用(比如工具类持有Activity引用,Activity销毁后未释放);②非静态内部类持有外部类
您可能关注的文档
最近下载
- 人才发展工作手册.docx VIP
- 人才发展工作手册(学习资料)人事管理好帮手.pdf VIP
- 3.5.1医院感染管理组织C.docx VIP
- 大数据与人工智能导论(厦门大学)学习通网课章节测试答案.docx VIP
- 耻骨上膀胱穿刺造瘘术评分标准(1).docx VIP
- 2025-2026学年小学英语人教精通版2024四年级上册-人教精通版(2024)教学设计合集.docx
- 深圳市某鲁班奖工程幕墙质量通病防治措施.doc VIP
- 第9课《数据画家》(课件)-2025-2026学年苏少版(2024)初中美术八年级上册.pptx VIP
- 电子技术基础数字部分康光华主编详细习题答案.doc VIP
- 技术询标问卷.docx VIP
原创力文档


文档评论(0)