2024Android常见面试题,面试题+笔记+项目实战

阿里

自我介绍

  • Android学习方式
  • 对源码是否了解(Android Java)

源码

  • Handler消息机制(具体涉及到的类 & 细节)
  • HashMap(数据结构 & put操作
  • HashMap扩容时间复杂度
  • ArrayMap

JVM

  • Java内存区域
  • 堆栈区别
  • 哪些区域线程私有,哪些共享
  • 栈帧
  • 方法调用时的入栈出栈操作

Java

  • 并发访问:
  1. volatile(只保证了可见性和有序性,不能保证原子性)
  2. synchronized:修饰代码块/方法/对象的区别? (单例模式DCL会不会失效?)
  3. Lock

Android

  • Activity生命周期(具体执行,涉及到哪些类?)
  • ANR(什么是ANR?怎么监测,运行前,运行后,线上监测?)

项目

  • 项目线程同步的优化(session/cooike/token/上传凭证的区别)

阿里一面 1h (挂)

自我介绍

项目

  • 使用人数/有无上架商店
  • 有无IM通讯模块
  • 登录模块是怎么解决的
  • 如何优化千万级别用户下让用户实时知道自己状态(APP端 & 服务器端)

Java

  • synchronized修饰方法和类有什么区别
  • volatile关键字作用

JVM

  • 内存分配
  • 垃圾回收算法

Android

  • 事件分发机制
  • 消息机制
  • View绘制流程(具体原理,包括不限于绘制三大流程)
  • Handler(怎么实现多线程?为什么Looper死循环没事?怎么实现线程间通讯?)
  • 操作系统层面死循环是怎么回事?
  • 死循环一定会导致ANR麽?

HTTP协议

  • HTTP缓存了解不?

腾讯

提前批一面 50min

Android

  • 四大组件是什么?轮番介绍之
  • Fragment是什么?与Activity区别?
  • SurfaceView与View区别?SurfaceView原理?
  • 前台服务与后台服务区别?
  • AIDL了解么?
  • IPC方式?谁最快?
  • Protocol Buffer了解么?
  • APP中多进程有什么用?
  • 方法数65536怎么解决?
  • View显示过程?

Java

  • 线程同步方式?
  • 死锁是什么&#x
  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些常见的Java面试题及其答案: 1. 什么是Java中的面向对象编程(OOP)?列举OOP的原则。 面向对象编程是一种编程范式,它将数据和操作数据的方法组合成对象。Java是一种面向对象的编程语言,它支持封装、继承和多态等OOP原则。 OOP的原则包括: - 封装:将数据和操作数据的方法封装在一个对象中,通过访问修饰符来控制对数据的访问。 - 继承:通过继承机制,一个类可以继承另一个类的属性和方法。 - 多态:同一种类型的对象,在不同的情况下可以表现出不同的行为。 2. 什么是Java中的重载和重写?它们之间有什么区别? 重载(Overloading)是指在同一个类中,可以有多个方法具有相同的名称,但参数列表不同。重载方法可以根据不同的参数类型和个数进行调用。 重写(Overriding)是指子类重新定义了父类中已有的方法。重写方法必须具有相同的名称、参数列表和返回类型。重写方法可以在子类中实现特定的行为。 区别: - 重载是在同一个类中定义多个方法,方法名相同但参数列表不同;重写是子类重新定义父类中已有的方法。 - 重载是编译时多态性,根据参数类型和个数选择调用的方法;重写是运行时多态性,根据对象的实际类型选择调用的方法。 3. Java中的异常处理机制是什么? Java中的异常处理机制通过try-catch语句块来处理异常。在try块中编写可能抛出异常的代码,如果发生异常,会跳转到catch块中执行相应的处理逻辑。 示例代码: ```java try { // 可能抛出异常的代码 } catch (Exception e) { // 异常处理逻辑 } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值