Android面试题整理

Java

  1. HashMap的内部原理。 主要是内部的hash碰撞、resize()等。还会与HashTable进行对比,说出相同与不同点。作为延伸可能还会问concurrentHashMap的分步锁问题。

  2. java中创建线程的方式有几种。 一般而言很多人会回答两种,Thread与Runnable。我最早面试的时候也是说这两种,然后面试官问还有别的吗?我当时就没答上来,其实还有一种叫Callable的。这里可能还需要理解下Callable与Runnable的区别以及使用时候的注意事项。

  3. 线程阻塞的方式。主要还是考察sleep、wait、yield与join的区别。

  4. 死锁造成的原因、手写死锁。synchronized 关键字

  5. 线程池ThreadPoolExecutor的使用,内部处理任务的过程以及四种线程池的区别。

  6. Java中的四种引用以及使用的场景

  7. java中GC回收算法以及年代区分问题等

Android

  1. Activity的启动模式、standard、singleTop、singleTask、singleInstance的区别。 这里需要重点注意的是singleTask启动时候的回调onNewIntent以及不同栈之间的Activity如何跳转。我在面试腾讯的时候就被问到过这个问题。

  2. Service的启动模式和生命周期,会延伸到Binder和IntentService,这里最好去看下IntentService的原理和源码。看了源码之后还会延伸到HandThread的问题。

  3. Android消息机制Handler。这是常问也是必问的问题,除了要知道内部原理和源码以外还要清楚造成内存泄漏的原因和处理方式。

  4. 事件分发原理。这里主要会问事件分发的流程以及进行拦截时候onInterceptTouchEvent返回true时剩下的MOVE与UP如何走,onTouch、onTouchEvent、onClick的先后顺序关系。

  5. AsyncTask内部实现原理。 这个在平安人寿以及投哪儿网二面领导问道过。主要是AsyncTask内部如何实现的,内部处理多任务是串行还是并行处理,为什么是串行处理,如果让其变成并行处理等。

  6. LruCache算法如何实现,内部为什么要用LinkHashMap来实现。

  7. 进程之间的通信方式,IPC原理。 这里会延伸到AIDL和Binder。
    夯实基础之超详解Android Binder的工作方式与原理以及aidl示例代码
    【干货满满】关于Binder的一些面试问题

  8. 进程之间的优先级。 前台进程、可见进程、后台进程、不可见进程与空进程。腾讯面的时候还特意问了我进程的保活措施。

  9. 图片的压缩处理。 这里会问四种图片格式的区别(ARGB888、RGB565、RGB444、Alpha_8),以及问给出一张以上格式的图片如何计算图片所占的内存大小。

  10. Serializable与Parcable的区别。 在什么情况下需要用到序列化和反序列化,Serializable中为什么要设置UID,设置UID与不设置UID值的区别和影响。

  11. 动画总结。 重点是属性动画内部实现原理,差值器和估值器的使用。

  12. Android中断点续传的原理、热更新的原理。 珍爱网面试我的时候问了这个,当时没了解过,很遗憾的没回答出来。

  13. Android的性能优化。 布局优化(include、merge和viewstub标签的使用)、绘制优化(不要在onDraw方法里面创建新的对象)、内存泄漏优化,检测内存的方式和内存泄露造成的原因等。

  14. 网络请求原理。 http与https的区别、三次握手和四次挥手,为什么握手一定要三次?为什么挥手一定要四次?http的响应码。http1与http2的区别等。

  15. 开源框架的使用和原理。 OkHttp内部实现、glide的内部原理、EventBus源码和RxJava的使用过程注意事项等。

Android 面试之必问性能优化
2023年全年Android面试笔试总结,技术类面试题合集

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值