Moosphan / Android-Daily-Interview

:pushpin:每工作日更新一道 Android 面试题,小聚成河,大聚成江,共勉之~
5.48k stars 776 forks source link

Question To Ask | 后续面试题集中征集处 #20

Open Moosphan opened 5 years ago

Moosphan commented 5 years ago

回答统一格式,如:

shortybin commented 5 years ago
canyie commented 5 years ago

问题内容:从机器和开发者来看,对象分别是什么? 所属范围:Java或系统底层 问题出处:自创 问题难度:二星 出现频率:一星

canyie commented 5 years ago

问题内容:为什么在安卓7.0以后,谷歌不建议使用file:// URI传递文件了? 所属范围:Android 相关

canyie commented 5 years ago

问题内容:Activity等中的onLowMemory()和onTrimMemory(int level)有什么异同? 所属范围:Android 相关

StefanShan commented 5 years ago

问题内容:强引用、软引用、弱引用、虚引用的区别 ? 所属范围:Java 参考答案:

Alex-Cin commented 5 years ago

问题内容:A类的static 代码块, 什么情况下, 会被触发执行, 你能列举出多少情况? 所属范围:Java 相关 问题出处(可选):不记得啊, sorry 出现频率(可选):★ 困难指数(可选):★★ 参考答案(可选):调用A类的静态属性; 初始化A类的实例(包括反射); 使用 ClassLoader加载A类; 目前知道这几种;

Alex-Cin commented 5 years ago

问题内容:LinearLayout, FrameLayout, RelativeLayout 哪个效率高, 为什么;
所属范围:Android相关 问题出处(可选):不记得啊, sorry 出现频率(可选):★ 困难指数(可选):★★ 参考答案(可选):

Alex-Cin commented 5 years ago

问题内容:LinearLayout 包裹 A, B 两个 Button, 在 AButton 上按下, 一直移动, 手指扫过 BButton, 整个事件传递的过程, MoveEvent 的数值;
所属范围:Android相关 问题出处(可选):不记得啊, sorry 出现频率(可选):★ 困难指数(可选):★★ 参考答案(可选):

Alex-Cin commented 5 years ago

问题内容:HTTP 1.0与1.1 的区别? 所属范围:HTTP相关 问题出处(可选):不记得啊, sorry 出现频率(可选):★★★ 困难指数(可选):★★ 参考答案(可选):

Alex-Cin commented 5 years ago

问题内容:launcher 启动 App 的 MainActivity, 牵涉到哪几个进程, 期间用什么方式进行的通信? 所属范围:Android相关 问题出处(可选):不记得啊, sorry 出现频率(可选):★★ 困难指数(可选):★★★ 参考答案(可选):

Alex-Cin commented 5 years ago

问题内容:活动 A 调用 startActivityForResult 前往活动 B, 在 B 页面 setResult,并启动活动 A, 并且活动 A 的启动模式是 SINGLE_TASK,请问活动 A 会回调哪些方法?这些方法的执行顺序是怎样的?
(onRestart-onResume-onNewIntent-onActivityResult) 所属范围:Android相关 问题出处(可选):不记得啊, sorry 出现频率(可选):★ 困难指数(可选):★★ 参考答案(可选):

Alex-Cin commented 5 years ago

问题内容:假设有一个AService, 我们先Start2次, 再Bind2次;
1.. 请问内存中有几个AService对象实例, 怎么做到的?
2.. 如果想让这个AService停下来, 需要怎么做?
所属范围:Android相关 问题出处(可选):不记得啊, sorry 出现频率(可选):★★ 困难指数(可选):★★ 参考答案(可选):

Alex-Cin commented 5 years ago

问题内容:Glide 是不是后进来的任务, 优先执行? 如果让你实现这个需求, 你打算怎么做?
所属范围:Android相关 问题出处(可选):不记得啊, sorry 出现频率(可选):★ 困难指数(可选):★★ 参考答案(可选):

Alex-Cin commented 5 years ago

问题内容:RxJava 用过吧? 假设现在让你设计一个通用的框架, 假设就做HTTP请求, 那么你可以设计实现,
ABC多个任务串行执行吗? ABC多个任务并发执行吗? 多个任务串行+并发呢?
你打算怎么解决这个问题, 可以先简单讲一下, 可以不参照RxJava原理, 只要能实现需求即可;
所属范围:Java相关 问题出处(可选):不记得啊, sorry 出现频率(可选):★ 困难指数(可选):★★★ 参考答案(可选):

Alex-Cin commented 5 years ago

问题内容:动态代理的原理, 简单讲一下;
动态代理, 能否代理普通类, 譬如 UserBean, 答案是 No; 为什么不能呢? 能大概讲一下吗?
所属范围:Java相关 问题出处(可选):不记得啊, sorry 出现频率(可选):★ 困难指数(可选):★★★ 参考答案(可选):

canyie commented 5 years ago

问题内容:通过ByteBuffer.allocate和ByteBuffer.allocateDirect分配的ByteBuffer有什么不同? 所属范围:Java相关 出现频率:★☆ 困难指数:★★

canyie commented 5 years ago

问题内容:线程池技术有什么优点? 所属范围:Java基础 出现频率:★★☆ 困难指数:★

canyie commented 5 years ago

问题内容:finalize()方法是什么?为什么不建议对象重写此方法? 所属范围:Java基础 出现频率:★★★ 困难指数:★

canyie commented 5 years ago

问题内容:什么是volatile关键字? 所属范围:多线程 出现频率:★★ 困难指数:★★ 参考答案:https://zhuanlan.zhihu.com/p/56191979

cleVSokc commented 5 years ago

回答统一格式,如:

问题内容:小明从一楼到三楼用了6分钟 (每层用的时间都是一样的)那么他从一楼到六楼用了多长时间

所属范围:Java相关 问题出处(可选):XXX公司面试题

cleVSokc commented 5 years ago

Android相关问题 ListView和RecyclerView的性能比较以及运用场景的选择

FinlayFeng commented 5 years ago

问题内容:下拉状态栏会不会影响Activity的生命周期?为什么? 所属范围:Android

JimZhangSpace commented 5 years ago

问题内容:局部变量能否用final修饰符,有什么好处? 所属范围:Java

JimZhangSpace commented 5 years ago

问题内容:HandlerThread和Thread 、Handler三者之间的关系,在什么情况下使用? 所属范围:Android

canyie commented 5 years ago

问题内容:什么是 Java 注解? 所属范围:Java基础 备注:注解,不是注释!!

canyie commented 5 years ago

问题内容:什么是Java中的泛型?使用泛型相比强转的好处的什么? 所属范围:Java基础

canyie commented 5 years ago

问题内容:HashMap,ArrayMap,IdentityHashMap,Hashtable,ConcurrentHashMap,EnumMap,SparseArray/LongSparseArray的区别? 所属范围:集合框架

canyie commented 5 years ago

问题内容:Android给我们提供了一个叫 LruCache 的缓存类,那么,什么是 LRU 算法? 所属范围:算法

canyie commented 5 years ago

问题内容:更改线程优先级可以使用Thread类的setPriority(int)方法,也可以用android.os.Process的setThreadPriority(int),那么两者之间是什么关系? 所属范围:Android 出现频率:★ 困难指数:★★ 参考答案: 为了这个问题我特意去看过源码。 Thread的setPriority方法是把参数保存到了成员变量priority里,如果此线程在工作,调用nativeSetPriority方法,这个方法会把Thread类定义的那些线程优先级转换为linux的优先级,然后如果设置为background级别,或从background修改到非background,调用set_sched_policy设置调度策略,最后调用linux的setpriority来设置。 Process的setThreadPriority直接就是个native方法,一路追踪下来最后还是调用的set_sched_policy和setpriority,不同的是没有转换(传进来的参数直接就是linux的优先级) 还剩下一个问题,设置了优先级,获取的时候结果是什么? Thread的getPriority方法直接返回了成员变量priority,所以通过Process.setThreadPriority设置不会反映到这里 Process的getThreadPriority方法返回的是getpriority的结果,所以通过Thread.setPriority设置之后也会反映到这里

KKaKa commented 5 years ago
canyie commented 5 years ago

问题内容:Exception(指checked exception),RuntimeException,Error的异同和出现场景? 所属范围:Java 基础 出现频率:★★ 困难指数:★

canyie commented 5 years ago

问题内容:对象的浅克隆和深克隆是什么? 所属范围:Java 基础 出现频率:★ 困难指数:★★

canyie commented 5 years ago

问题内容:什么是冒泡排序? 所属范围:算法 出现频率:★★☆ 困难指数:★ ps:关于为什么不问其他排序算法,因为我只会冒泡。。。

Alex-Cin commented 5 years ago

问题内容:关于 onMeasure 的问题
第一次预测量-调用栈流程: performTraversals-measureHierarchy-performMeasure;
第二次最终测量-调用栈流程: performTraversals-performMeasure;
1.. 第一个问题
什么时候会触发第一次测量, 什么时候会触发第二次测量, 为什么要这样做, 只测量一次行不行? 所有的UI系统, 例iOS, 都是要这样做吗? 这个问题, 困扰很久了, 网上的答案多数是, 我发现了这个现象, 这些函数都干了什么;

2.. 第二个问题
第一次测量, 是拿着父窗体的尺寸, 问子控件要多大?
第二次测量, 是拿到了子控件的尺寸, 调整父窗体尺寸, 并告诉子控件, 父窗体只能提供多大尺寸, 也可以强制子控件变成多大尺寸;
我这样理解, 对不对? 请好心人, 帮忙解答;

所属范围:Android 基础 出现频率:★ 困难指数:★★

canyie commented 5 years ago

问题内容:普通View,SurfaceView,TextureView有什么异同? 所属范围:Android View相关 出现频率:★★ 困难指数:★

StefanShan commented 5 years ago

建议将已经征用的问题在“面试题征集处”删除 @Moosphan

xianfeng92 commented 5 years ago

问题内容:简述一下什么是快速排序及其应用场景? 所属范围:算法 出现频率:★★ 困难指数:★★★

canyie commented 5 years ago

问题内容:什么是算法的时间复杂度和空间复杂度? 所属范围:算法相关

canyie commented 5 years ago

问题内容:如何在不使用加减乘除的情况下求一个整数的7倍?(不限定语言) 所属范围:无(不知道怎么分类) 出现频率:★★ 困难指数:★★★★ 参考答案:https://75team.com/post/multiply7.html

canyie commented 5 years ago

问题内容:如何判断一个链表是否有环? 所属范围:算法/数据结构 出现频率:★★★ 困难指数:★☆

StefanShan commented 5 years ago

问题内容:如何解决哈希冲突? 所属范围:算法/数据结构 出现频率:★★★★ 困难指数:★

ADrunkenLiBai commented 5 years ago

问题内容:ArrayList是否可以被序列化,如何序列化 所属范围:java 基础 出现频率:★★★★ 困难指数:★

sunzhibindev commented 5 years ago

问题内容:Activity onDestroy()什么时候调用,什么时候不会调用 ? 所属范围:Android 相关

razerdp commented 5 years ago

问题内容:View.post为啥可以获取view的宽高,View.post一定会执行吗? 所属范围:Android 相关 出现频率(可选):★★★★☆ 困难指数(可选):★★★☆ 参考答案(可选):参考范围:onAttachedToWindow进而追溯到viewrootimpl和绘制流程/后者不一定执行(跟API挂钩,7.0之前跟之后被官方爸爸重构过)

hanlichao commented 5 years ago

问题内容:谈谈对ThreadLocal的理解? 使用场景有哪些? 所属范围:线程 相关 问题出处(可选):百度

hanlichao commented 5 years ago

问题内容:字符串中存在多个{[()]}, 如何正确匹配? 所属范围:算法 相关 问题出处(可选):百度

yizems commented 5 years ago

问题内容:如何简单粗暴的理解 协程模型/工作模式

所属范围:kotlin相关

FinlayFeng commented 5 years ago

问题内容:谈谈对 webview 优化的经验和理解

所属范围:Android 相关

Fritz-Xu commented 5 years ago

问题内容:关于 onMeasure 的问题 第一次预测量-调用栈流程: performTraversals-measureHierarchy-performMeasure; 第二次最终测量-调用栈流程: performTraversals-performMeasure; 1.. 第一个问题 什么时候会触发第一次测量, 什么时候会触发第二次测量, 为什么要这样做, 只测量一次行不行? 所有的UI系统, 例iOS, 都是要这样做吗? 这个问题, 困扰很久了, 网上的答案多数是, 我发现了这个现象, 这些函数都干了什么;

2.. 第二个问题 第一次测量, 是拿着父窗体的尺寸, 问子控件要多大? 第二次测量, 是拿到了子控件的尺寸, 调整父窗体尺寸, 并告诉子控件, 父窗体只能提供多大尺寸, 也可以强制子控件变成多大尺寸; 我这样理解, 对不对? 请好心人, 帮忙解答;

所属范围:Android 基础 出现频率:★ 困难指数:★★

-----------分割线-------------------- 问:什么时候会触发第一次测量, 什么时候会触发第二次测量, 为什么要这样做, 只测量一次行不行? 答:除了DecorView,其他的View第一次测量大多数都是发生在它的父View调用onMeasure得时候;什么时候需要第二次测量?自然是第一次测量时无法确定具体的尺寸时,就会发生第二次的测量,如LinearLayout的权重,子View的宽度设为0,权重为1,那么第一次测量结果为0,等其他的View都测量完毕,再去测量这个权重的View,给它设置正确的宽度; 这也正是存在这种无法通过一次测量得出需求尺寸的因素,才需要对View进行多次测量

问:第一次测量, 是拿着父窗体的尺寸, 问子控件要多大? 答:这个是在父View的尺寸是精确的情况下的一个情况,如果父View的尺寸都是wrap_content,此时要看父View的父View有无做限制了,如果都没限制,那么就是子View要多大就给多大,并依据全部子View的尺寸确定父View的具体尺寸了

问:第二次测量, 是拿到了子控件的尺寸, 调整父窗体尺寸, 并告诉子控件, 父窗体只能提供多大尺寸, 也可以强制子控件变成多大尺寸; 答:是的,第二次测量往往都是父View的尺寸已经确定了,要对第一次测量还无法确定具体尺寸的View进行二次测量