2017下半年,一二线互联网公司Android面试题汇总 转瞬就到了2017年10月,离2018就剩余几个月了,许多人估量正在换岗的路上,收拾一份Android高档开发工程师面试集锦,对照这些问题进行温习,将会事半功倍。废话不多说,直接上干货,由所以收拾于网络,就不标明原创,期望我们多多同享和转发给有需求的同学。阿里巴巴LRUCache原理图片加载原理模块化完成(优点,原因)JVM视频加密传输核算发动时长,规范怎样坚持运用的稳定性ThreadLocal 原理谈谈classloader动态布局热修正,插件化HashMap源码,SpareArray原理功能优化,怎样确保运用发动不卡顿怎样去除重复代码SP是进程同步的吗?有什么办法做到同步介绍下SurfViewHashMap完成原理,ConcurrentHashMap 的完成原理BroadcastReceiver,LocalBroadcastReceiver 差异Bundle 机制Handler 机制android 事情传递机制线程间 操作 ListApp发动流程,从点击桌面开端动态加载类加载器OSGIHttps恳求慢的处理办法,DNS,带着数据,直接拜访IPGC收回战略画出 Android 的大体架构图描绘清点击 Android Studio 的 build 按钮后发生了什么大体说清一个运用程序装置到手机上时发生了什么;对 Dalvik、ART 虚拟机有根本的了解;Android 上的 Inter-Process-Communication 跨进程通讯时怎样作业的;App 是怎样沙箱化,为什么要这么做;权限办理体系(底层的权限是怎样进行 grant 的)进程和 Application 的生命周期; 体系发动流程 Zygote进程 –> SystemServer进程 –> 各种体系效劳 –> 运用进程recycleview listview 的差异,功能排序,快速排序的完成树:B+树的介绍图:有向无环图的解说TCP/UDP的差异synchronized与Lock的差异volatileJava线程池Java中方针的生命周期类加载机制双亲派遣模型Android事情分发机制MVP形式RxJava抽象类和接口的差异调集 Set完成 Hash 怎样避免磕碰JVM 内存区域 开线程影响哪块内存废物搜集机制 方针创立,重生代与老时代二叉树 深度遍历与广度遍历B树、B+树音讯机制进程调度进程与线程死锁进程状况JVM内存模型并发调集了解哪些ConCurrentHashMap完成CAS介绍敞开线程的三种办法,run()和start()办法差异线程池常用数据结构简介判别环(猜想应该是链表环)排序,堆排序完成链表回转腾讯synchronized用法volatile用法动态权限适配计划,权限组的概念网络恳求缓存处理,okhttp怎样处理网络缓存的图片加载库相关,bitmap怎样处理大图,如一张30M的大图,怎样避免OOM进程保活listview图片加载紊乱的原理和处理计划https相关,怎样验证证书的合法性,https中哪里用了对称加密,哪里用了非对称加密,对加密算法(如RSA)等是否有了解滴滴MVP播送(动态注册和静态注册差异,有序播送和规范播送)service生命周期handler完成机制(许多细节需求重视:如线程怎样树立和退出音讯循环等等)多线程(关于AsyncTask缺点引发的考虑)数据库数据搬迁问题规划形式相关(例如Android中哪里运用了观察者形式,单例形式相关)x个苹果,一天只能吃一个、两个、或许三个,问多少天能够吃完TCP与UDP差异与运用(三次握手和四次挥手)涉及到部分细节(如client怎样断定自己发送的音讯被server收到) HTTP相关 说到过Websocket 问了WebSocket相关以及与socket的差异是否了解Android jni开发,jni怎样调用java层代码进程间通讯的办法java注解核算一个view的嵌套层级项目组件化的了解多线程断点续传原理Android体系为什么会规划ContentProvider,进程同享和线程安全问题jvm相关Android相关优化(如内存优化、网络优化、布局优化、电量优化、事务优化)EventBus完成原理美团static synchronized 办法的多线程拜访和效果,同一个类里边两个synchronized办法,两个线程一起拜访的问题内部类和静态内部类和匿名内部类,以及项目中的运用handler发音讯给子线程,looper怎样发动View事情传递activity栈封装view的时分怎样知道view的巨细arraylist和linkedlist的差异,以及运用场景怎样发动service,service和activity怎样进行数据交互下拉状况栏是不是影响activity的生命周期,如果在onStop的时分做了网络恳求,onResume的时分怎样康复view烘托今天头条数据结构中堆的概念,堆排序死锁的概念,怎样避免死锁ReentrantLock 、synchronized和volatile(n面)HashMapsingleTask发动形式用到的一些开源结构,介绍一个看过源码的,内部完成进程。音讯机制完成ReentrantLock的内部完成App发动溃散反常捕捉事情传递机制的介绍ListView的优化二叉树,给出根节点和方针节点,找出从根节点到方针节点的途径形式MVP,MVC介绍断点续传的完成调集的接口和详细完成类,介绍TreeMap详细完成synchronized与ReentrantLock手写生产者/消费者形式逻辑地址与物理地址,为什么运用逻辑地址一个无序,不重复数组,输出N个元素,使得N个元素的和相加为M,给出时刻复杂度、空间复杂度。手写算法.Android进程分类前台切换到后台,然后再回到前台,Activity生命周期回调办法。弹出Dialog,生命值周期回调办法。Activity的发动形式爱奇艺RxJava的功能与原理完成RecycleView的运用,原理,RecycleView优化ANR的原因四大组件Service的敞开办法Activity与Service通讯的办法Activity之间的通讯办法HashMap的完成,与HashSet的差异JVM内存模型,内存区域Java中同步运用的关键字,死锁MVP形式Java规划形式,观察者形式Activity与Fragment之间生命周期比较播送的运用场景百度Bitmap 运用时分留意什么?Oom 是否能够try catch ?内存走漏怎样发生?适配器形式,装饰者形式,外观形式的异同?ANR 怎样发生?String buffer 与string builder 的差异?怎样确保线程安全?java四中引证Jni 用过么?多进程场景遇见过么?关于handler,在任何地方new handler 都是什么线程下sqlite晋级,添加字段的句子bitmap recycler 相关强引证置为null,会不会被收回?glide 运用什么缓存?Glide 内存缓存怎样操控巨细?怎样确保多线程读写文件的安全?携程Activity发动形式播送的运用办法,场景App中唤醒其他进程的完成办法AndroidManifest的效果与了解List,Set,Map的差异HashSet与HashMap怎样判别调集元素重复Java中内存区域与废物收回机制EventBus效果,完成办法,替代EventBus的办法Android中敞开摄像头的首要进程网易调集concurrenthashmapvolatilesynchronized与LockJava线程池wait/notifyNIO废物搜集器Activity生命周期AlertDialog,popupWindow,Activity差异小米String 为什么要规划成不可变的?fragment 各种情况下的生命周期Activity 上有 Dialog 的时分按 home 键时的生命周期反正屏切换的时分,Activity 各种情况下的生命周期Application 和 Activity 的 context 方针的差异序列化的效果,以及 Android 两种序列化的差异。List 和 Map 的完成办法以及存储办法。静态内部类的规划目的。线程怎样封闭,以及怎样避免线程的内存走漏360软引证、弱引证差异废物收回多线程:怎样用、有什么问题要留意;Android线程有没有上限,然后说到线程池的上限JVM锁OOM,内存走漏ANR怎样剖析处理LinearLayout、RelativeLayout、FrameLayout的特性、运用场景怎样完成Fragment的滑动ViewPager运用细节,怎样设置成每次只初始化当时的Fragment,其他的不初始化ListView重用的是什么进程间通讯的机制AIDL机制AsyncTask机制怎样撤销AsyncTask序列化Android为什么引进Parcelable有没有测验简化Parcelable的运用AIDL机制项目:拉活怎样做的运用装置进程某海外直播公司线程和进程的差异?为什么要有线程,而不是仅仅用进程?算法判别单链表成环与否?怎样完成线程同步?hashmap数据结构?arraylist 与 linkedlist 异同?object类的equal 和hashcode 办法重写,为什么?hashmap怎样put数据(从hashmap源码视点解说)?简述IPC?fragment之间传递数据的办法?简述tcp四次挥手?threadlocal原理内存走漏的可能原因?用IDE怎样剖析内存走漏?OOM的可能原因?线程死锁的4个条件?差值器&估值器简述音讯机制相关进程间通讯办法?Binder相关?接触事情的分发?简述Activity发动悉数进程?okhttp源码?RxJava简介及其源码解读?功能优化怎样剖析systrace?播送的分类?点击事情被阻拦,可是相传到下面的view,怎样操作?Glide源码?ActicityThread相关?volatile的原理synchronize的原理lock原理翻转一个单项链表string to integer兼并多个单有序链表(假定都是递加的)其他公司四大组件Android中数据存储办法微信主页面的完成办法微信上音讯小红点的原理两个不重复的数组调集中,求一起的元素。上一问扩展,海量数据,内存中放不下,怎样求出。Java中String的了解。ArrayList与LinkedList差异堆排序进程,时刻复杂度,空间复杂度快速排序的时刻复杂度,空间复杂度RxJava的效果,与平常运用的异步操作来比,优势Android音讯机制原理Binder机制介绍为什么不能在子线程更新UIJVM内存模型Android中进程内存的分配,能不能自己分配定额内存废物收回机制与调用System.gc()差异Android事情分发机制断点续传的完成RxJava的效果,优缺点 |