前言
对于Android的学习,很多人可能学了之后,不知道自己处于哪个阶段,也不到究竟要学到哪个程度,验证自己学得如何最好的?试,就是尝试去面试,而面试无非就是问你?些面试题。
所以呢,我整理了这些 Android 面试题,从 Java 基础,并发,虚拟机到Android Framework,开源框架,性能优化,并且附带了详细的答案,无论是想?试还是想看看自己学得如何,那么这份面试题,都值得你去学习。
(有需要的话,可以点击链接,免费获取:资料戳我,免费获取)
第一章 算法和数据结构面试题
1、说一说HashMap,SparseArrary原理,SparseArrary相比HashMap的优点、ConcurrentHashMap如何实现线程安全?
2、请说一说HashMap原理,存取过程,为什么用红黑树,红黑树与完全二叉树对比,HashTab、concurrentHashMap,concurrent包里有啥?
3、请说一说hashmap put()底层原理,发生冲突时,如何去添加(顺着链表去遍历,挨个比较key值是否一致,如果一致,就覆盖替换,不一致遍历结束后,插入该位置) ?
4、请说一说ArrayList 如何保证线程安全,除了加关键字的方式 ?
5、请说一说ArrayList、HashMap、LinkedHashMap ?
6、请说一说HashMap实现原理,扩容的条件,链表转红黑树的条件是什么 ?

第二章 Java核心基础面试题
1、Java中提供了抽象类还有接口,开发中如何去选择呢?
2、重载和重写是什么意思,区别是什么?
3、静态内部类是什么?和非静态内部类的区别是什么?
4、Java中在传参数时是将值进行传递,还是传递引用?
5、使用equals和==进行比较的区别
6、String s = new String(“xxx”);创建了几个String对象?

第三章 Java深入泛型与注解面试题
1、泛型是什么,泛型擦除呢?
2、List<String>能否转为List<Object>
3、Java的泛型中super 和 extends 有什么区别?
4、注解是什么?有哪些使用场景?

第四章 Java并发编程面试题
1、假如只有一个cpu,单核,多线程还有用吗 ?
2、sychronied修饰普通方法和静态方法的区别?什么是可见性?
3、Synchronized在JDK1.6之后做了哪些优化
4、CAS无锁编程的原理
5、AQS原理
6、ReentrantLock的实现原理

......
第十章 Framework内核解析面试题
1、Android中多进程通信的方式有哪些?
2、描述下Binder机制原理?
3、为什么 Android 要采用 Binder 作为 IPC 机制?
4、Binder线程池的工作过程是什么样?
5、AIDL 的全称是什么?如何工作?能处理哪些类型的数据?
6、Android中Pid&Uid的区别和联系

第十一章 Android组件内核面试题
1、Acitvity的生命周期,如何摧毁一个Activity?
2、Activity的4大启动模式,与开发中需要注意的问题,如onNewIntent() 的调用
3、Intent显示跳转与隐式跳转,如何使用?
4、Activity A跳转B,B跳转C,A不能直接跳转到C,A如何传递消息给C?
5、Activity如何保存状态的?
6、请描诉Activity的启动流程,从点击图标开始。

第十二章 程序性能优化与数据持久化面试题
1、一张图片100x100在内存中的大小?
2、内存优化,内存抖动和内存泄漏。
3、什么时候会发生内存泄漏?举几个例子
4、Bitmap压缩,质量100%与90%的区别?
5、TraceView的使用,查找CPU占用
6、内存泄漏查找

第十三章 开源框架面试题
1、组件化在项目中的意义
2、组件化中的ARouter原理
3、谈一下你对APT技术的理解
4、谈谈Glide框架的缓存机制设计
5、谈谈你对Glide生命周期的理解
6、项目中使用Glide框架出现内存溢出,应该是什么原因?

结语
(这份资料可以点击链接,免费获取:资料戳我,免费获取)
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/18760.html