整理的Android面试题

xiaoxiao2021-02-28  89

Java 相关

面向对象的三大特性,如何理解其中的多态?接口与抽象类的区别?static 方法可以被覆盖吗?为什么?String,StringBuffer,StringBuilder 的区别。StringBuffer,StringBuilder底层实现是通过byte数据,外加数组的拷贝来实现的常见序列化协议及其优缺点JVM 内存模型JVM运行机制(理解JVM是如何运行的)栈帧的结构对象是如何在堆中分配的创建线程的方式,有什么区别?阻塞、非阻塞、同步、异步区别线程池,说说其理解,线程池的参数问题?几种不同线程池的比较,阻塞队列的使用,拒绝策略Future和ListenableFuture 异步回调相关Java 四种引用,代表的含义,有什么区别?深拷贝与浅拷贝JVM调优相关JVM 垃圾回收JVM 内存管理机制:有哪些区域,每个区域做了什么?JVM 垃圾回收机制:垃圾回收算法,垃圾回收器,垃圾回收策略?JVM参数的设置和jvm调优什么情况下产生年轻内存溢出,什么情况产生年老代内存溢出?Java 集合,Set、List、Map的区别和联系?为什么Set、List、Map不实现Cloneable和Serializable接口HashMap原理?ArrayList和LinkedList区别?哪些集合类是线程安全?ConcurrentHashMap的实现,1.7和1.8的实现。Collection的子接口什么时候使用CopyOnArrayListArrays.sort的实现乐观锁和悲观锁的实现Java 多线程 CAS (compare and swap)和 AQS(AbstractQueuedSynchronized) 的实现原理ThreadLocal ,对它的理解?生产者消费者代码实现死锁的代码实现volatile 的使用,synchronized 的使用,原理?ReenTrantLock 的实现,ReenTrantLock与synchronize的区别?注解,反射,为什么要用?反射动态擦除,反射动态调用方法设计模式:单例,代理,适配器,装饰着,观察者,策略,外观,创建者,抽象工厂消息队列广播模式和发布/订阅模式的区别类加载机制的步骤,每一步做了什么?static和final修改的成员变量的加载时机类的加载过程,Person person = new Person();为例进行说明。双亲委派动态绑定:父类引用指向子类对象内部类:静态内部类与匿名内部的区别Java BIO,NIO ,AIO的区别 和联系Java IO的整体架构和使用的设计模式HTTP 请求报文结构和内容HTTP 三次握手和四次挥手LRU算法的实现消息队列的使用场景Java的异常处理机制内存缓存的使用场景和优缺点SQL 优化关于 equals 和 hashcode 的理解?

Android相关

Activity 的生命周期?区别?Activity的创建过程?Activity的4种启动模式?各种的区别与特点Activity的加载过程Fragment ,对它的理解Activity与Fragment的通信五种布局的性能的对比四大主件,对它们的理解对Service的理解,启动方式;生命周期?如何Activity交互自定义View,步骤,中间出现的问题View的绘制流程,详细到framework代码刷新View的方式,区别数据存储的几种方式如何实现缓存,通过使用第三方库和自定义来分别说明一下缓存技术的实现?5.0 、6.0、7.0、8.0 的新特性动画分类,实现原理屏幕适配如何JS交互APP启动的流程常用的图片加载库有哪些?怎么实现?区别?开发中用到的第三方库,源码?Android如何实现异步通信?Handler 原理AsyncTask ,内部实现原理,缺陷,如何改进JNI的使用流程Binder原理进程间通信View绘制机制,View的分发机制广播,与EventBus 的区别?能相互实现吗网络请求如何实现?Volley,内部实现原理,与OKHttp的区别?第三方推送?推送的原理MVP ,MVC,MVVM多渠道打包安卓为啥要加签名机制。签名机制的原理?反编译后,文件夹所包含的内容有哪些?模块化,组件化开发APP如何进行架构?工程模块如何划分,如何封装?安卓布局优化方案APP 如何优化,OOM,内存泄漏,如何解决?兼容问题优化方案过渡绘制,如何防止ListView优化,下拉的优化多进程Application的会启动几次数据库,SQLite 操作。网络相关,5层模型,TCP,UDP ,长连接Http 缓存机制, Last-Modify 的作用Grade 中,buildToolsVersion和TargetSdkVersion 的区别?Android 如何进行资源管理setContentView 与 addView 的区别Bitmap 的加载,不能溢出插件化相关技术,热修补技术是怎样实现的,和插件化有什么区别。GLSurfaceView,OpenGL,Shader,绘制流程。多线程多点下载的过程自定义view效率高于xml定义吗?说明理由。广播的种类,注册方式,优缺点?安卓虚拟机和java虚拟机的原理和不同点 安卓权限管理,为何在清单中注册权限,安卓APP就可以使用,反之不可以socket短线重连怎么实现,心跳机制又是怎样实现,四次握手步骤有哪些安全加密,加密算法,MD5hybird ,响应式编程RxJava,Reactive Native,面向协议编程

算法相关

常用的排序算法二分查找链表相关字符串相关树相关判断能否从数组中找出两个数字和为给定值,随机生成1~10000不重复并放入数组,求数组的子数组的最大和,二分查找算法的实现及其时间复杂计算定义栈的数据结构,请在该类型中实现一个能够找到栈最小元素的min函数数组的子序列字符串反转快排,回型打印二维数组输出所有的笛卡尔积组合最长上升子序列给出二叉树和一个值,找出所有和为这个值的路径;{1,3}{3,6}{3,4}{6,8}区间去重,最少去掉几个集合,可以让这个集合没有交集。算法 n/m,怎么判断得数是无限循环小数。给出一个搜索二叉树,输出一个排序好的双向链表。将一个字符串转换成int型数字,考虑 错误输入,溢出,正负值等一些条件m * n的矩阵,能形成几个正方形(2 * 2能形成1个正方形,2 * 3 2个,3 * 3 6个)请在100个电话号码找出135的电话号码 注意 不能用正则,(类似怎么最好的遍历LogGat日志)十六进制数据怎么和十进制和二进制之间转换

其它

gitsvngradle代码规范安全问题
转载请注明原文地址: https://www.6miu.com/read-32659.html

最新回复(0)