Android面试题目总结

本文是作者在Android面试过程中的题目总结,涵盖JAVA、设计模式、Android、网络和算法等多个方面。包括JAVA内存回收机制、引用类型、线程池、设计模式(如单例模式)、Android消息机制、Activity生命周期、服务、网络协议、排序算法等内容,旨在帮助开发者巩固基础知识,提升面试技能。
摘要由CSDN通过智能技术生成

最近刚换了工作,在这里把各互联网公司问到的题目做下总结。涉及的内容都是Android研发应该掌握的基础问题,我把题目大概分为JAVA,设计模式,Android,网络,算法五类。最后边列一下自己看过的技术书籍,希望大家都能提高自己,找到心仪的工作。

JAVA篇

  1. JAVA内存回收机制
    需要了解引用计数法,可达性分析法。
    需要知道标记清除,标记复制,标记整理。
    JVM分代回收算法流程。
    Java7的的新垃圾回收器。
    详细可以去看《深入理解JAVA虚拟机》这本书

  2. JAVA中的引用,强引用,软引用,弱引用,虚引用
    能说清各个引用的意思,了解ReferenceQueue,square公司的LeakCanary框架,MAT工具等。

  3. final关键字使用场景
    修饰类,修饰方法,修饰变量的意义

  4. static关键字使用场景
    修饰类,修饰变量,修饰方法,静态块,静态导入。

  5. 集合类相关
    ArrayList,LinkedList,HashMap,TreeMap等内部实现原理。
    ArrayList与LinkedList区别,ArrayList与Vector的区别,HashMap与HashTable区别。

  6. 内部类,静态内部类,局部内部类简介,及内部类为什么默认持有外部类的引用
    JAVA编译器会在内部类中加入类型为外部类的成员变量,并提供相关参数的构造函数

  7. JAVA中如何实现多继承
    通过实现多个接口及内部类的方式

  8. 线程池相关
    搞清Executor,ExecutorService,ThreadPoolExecutor关系。ThreadPoolExecutor中的参数使用。可以结合Executors工具类的newFixedThreadPool,newSingleThreadExecutor,newCachedThreadPool等方法说一说
    简述下线程池原理,当时没看过源码,结合Volley中自己实现的线程池说了说,主要涉及到BlockingQueue,核心线程,最大线程等概念,需要多看源码

  9. JAVA线程的几种状态,如何终止线程,进程与线程的区别。
    创建,就绪,运行,阻塞(同步块,IO阻塞),主动睡眠,主动等待,销毁。

  10. JAVA的wait,notify,notifyAll的用法,wait与sleep的区别
    wait挂起当前线程,等待sychronized的对象,notify唤醒一个wait的线程,notifyAll唤醒所有wait的线程。wait后线程会放弃锁,sleep会持有锁。

  11. 什么是线程安全,如何保证线程安全

  12. JAVA的concurrent中的一些类,JAVA的锁
    一些原子操作类,一些并发操作的集合类,一些更灵活的锁

  13. JAVA并发内存模型,三大特性(原子性,可见性,有序性),volatile,synchronized关键字
    注意volatile的作用使用场景,原理,

  14. 什么是多态,多态的使用场景,使用多态的意义

  15. switch中可以使用的类型
    int,byte,short,char,枚举,JAVA7以上String,case后必须final的变量

  16. JAVA的ClassLoader,双亲委派
    判断一个类是否相同,类加载器与类全名称都得相同,优先委托父类加载器来加载类

  17. JAVA对象的初始化顺序
    加载类
    初始化父类静态变量
    执行父类静态块
    初始化子类静态变量
    执行子类静态块
    初始化父类成员变量
    执行父类构造函数
    初始化子类成员变量
    执行子类构造函数

  18. try,catch,finally执行顺序,finalize的调用时机,作用。

  19. JAVA的异常
    都实现Throwable接口,分Error,Exception两类

  20. instanceof与getClass的区别
    object是否可以强转为某类型,可以用instanceof判断。getClass获得即某对象的Class对象

  21. Iterator,foreach,for,效率与线程安全
    Iterator迭代器可以在迭代过程中调用remove方法,做移除操作。foreach类似于

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值