Android——最近的面试总结(Android系统开发)

本文总结了Android面试中的关键点,包括Java基础、Android系统开发、设计模式、计算机网络、操作系统和算法。在Java部分,探讨了String对象创建的区别、集合类特性、并发关键字与同步机制。Android部分涉及Activity生命周期、Service管理和多线程通信。同时,讨论了进程间通信、Binder机制、内存管理以及开源框架的应用。设计模式和网络层面,涵盖了OSI模型、TCP/IP协议以及HTTP/HTTPS。操作系统部分对比了Windows与Linux。最后,强调了项目经验和对负责模块的深入理解在面试中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最近在换工作,大大小小面试了数家公司,对于技术面试官提的问题回答了80%以上,在此记录一下最近遇到的面试题。对于找工作,我的建议是你觉得自己准备好了再去投,如果仓促投一个公司,就少一次面试机会。

Java部分

  1. String str = “a”;和 String str = new String(“a”);有什么区别?
  2. String、StringBuilder和StringBuffer的区别是什么?
  3. ArrayList与Vector的区别?
  4. 解释一下volatile的用途
  5. 用synchronized修饰一个静态方法,锁的是什么?
  6. 重写与重载的区别是什么?
  7. wait和sleep的区别?
  8. 接口和抽象类的区别?
  9. 说一下List和Set的区别?

Android部分

  1. Activity销毁时会执行onDestroy()方法吗?
  2. 启动Service的方式
  3. 如何判断一个Service关闭了?
  4. 多线程通信有哪些方式?
  5. 进程间通信的方式
  6. AIDL的使用及用在进程间和线程间有什么区别?
  7. Handler的机制及原理
  8. 介绍一下HandlerThread
  9. 简单说一下事件分发
  10. view的自定义,如何自定义一个方形的View?
  11. Binder传输的数据类型是什么?
  12. Android的内存管理有了解吗?
  13. Activity和Fragment的区别
  14. 平时开发时使用过哪些开源框架,讲一讲它的实现原理。
  15. 导致内存泄漏的原因有哪些?
  16. 如何分析内存泄漏的?

设计模式

  1. 说一下你知道的设计原则
  2. 你知道哪些设计模式,有哪些在你的项目中使用过?

计算机网络

  1. 说一下OSI七层网络模型
  2. 知道TCP/IP的4层网络模型吗?
  3. 讲一下tcp的3次握手和4次挥手
  4. http与https的区别?

操作系统

  1. 进程和线程的区别?
  2. windows系统和linux系统区别是什么?(面试官提示windows有用到注册表,而linux没有)

算法(要可以口述其原理,必要时可以手写)

  1. 冒泡算法
  2. 快速排序

项目经验

  • 这块是我比较薄弱的,因为之前的工作新需求的开发并不多,可能我太菜了,但是通过面试我发现这一环节往往在面试打分中占比较高的比重,这里我建议就是多了解自己项目中的一个大的需求的开发,即使不是自己做的,把它深入了解了,感觉给自己依然能够写出来这个方案的时候,那么这个方案它可以是你写(^ - ^)。
  • 对自己所负责的模块要熟悉,可以画出其架构图(如果不行,也要能够画出其UML图),我在一家外企3面的时候,面试官应该是项目组的架构师,和他的沟通让我收益匪浅,在我画UML的过程中,他仅凭着多年软件开发的经验,就已经构思出我工作中负责的模块的框架,并且还从面向对象及设计模式的角度跟我深入交流了一番。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值