原创

Android 亲身经历面试题总结(第三回合)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://gaolei.blog.csdn.net/article/details/51675578

面试不仅是一个优胜劣汰的过程,还是一个自我认知的过程。面试有运气的成分,如果面试官水平不是很高或提问的正好你都会,那你就爽了,但我们还是应该重视能力的部分,如果你很有能力则会攻无不克。面试之前你认为你准备充分了,可能不然。面试时提问的知识会很详细、深入,而你可能只是了解,所以技术的广度和深度同样重要。除了知识还有许多面试技巧和细节个人认为同样重要:

---------------------------------------------------------------------------------------------------

1. android 5.0/6.0/7.0版本 分别有什么新特性:http://www.2cto.com/kf/201604/503511.html

JDK各个版本的新特性jdk1.5-jdk8:http://www.cnblogs.com/langtianya/p/3757993.html

2.单链表linkedlist翻转:http://computerdragon.blog.51cto.com/6235984/1305986

3.死锁怎么形成,代码写出:http://blog.chinaunix.net/uid-20665441-id-305490.htmlhttp://blog.csdn.net/li396864285/article/details/51487637

4.BroadcastReceiver和service中能执行耗时操作吗,如果不能,为什么不能

 Android中的ANR问题:http://blog.chinaunix.net/uid-20771867-id-3034557.html

 Android ANR异常及解决方法:http://blog.csdn.net/leilu2008/article/details/6689405

【腾讯bugly干货分享】精神哥手把手教你如何智斗ANR:http://www.mamicode.com/info-detail-885290.html

5.intent能传递什么类型的对象,对象有大小限制吗:http://blog.csdn.net/xuan521521/article/details/51203674

bundle.putSerializable(Key,Object); //实现Serializable接口的对象
bundle.putParcelable(Key, Object); //实现Parcelable接口的对象

6.classloader、aidl、ibinder、binder的实现原理,aidl可以在一个进程间通信吗

Java ClassLoader 原理详细分析:http://www.codeceo.com/article/java-classloader.html

Android进程间通信(IPC)机制Binder简要介绍:http://blog.csdn.net/luoshengyang/article/details/6618363

android 进程间的通信(IPC)方式有哪些?http://blog.csdn.net/a471893438/article/details/51878919

7.softreference和weakreference区别

8.java 垃圾回收

finalize()有什么用法,(不用自己调用,垃圾回收时自动会调用)

http://blog.csdn.net/canot/article/details/51037938

java中垃圾回收的策略:http://blog.csdn.net/on_1y/article/details/38900597http://www.cnblogs.com/mingziday/p/4967337.html

GC Roothttp://blog.csdn.net/fenglibing/article/details/8928927

Java GC、新生代、老年代:http://blog.csdn.net/flamezyg/article/details/44673951
Java GC的工作原理+Minor GC、FullGC:http://www.tuicool.com/articles/FbI3En

“你能不能谈谈,java GC是在什么时候,对什么东西,做了什么事情?”:http://blog.csdn.net/cy609329119/article/details/51771953

深入分析Java ClassLoader原理http://blog.csdn.net/xyang81/article/details/7292380

9.静态

单例模式项目中用到过吗?创建的对象怎么释放,static方法和静态对象占用内存吗

Android static静态成员变量的使用误区:http://www.androidchina.net/3433.html

采用单例模式还是静态方法好呢:http://jingyan.baidu.com/article/7e440953cffd192fc1e2ef6e.html

10.JNI  中JNIEnv *env, jobject obj 有什么作用,java和c怎么交互? C中处理大量数据怎么分段处理?

    http://blog.csdn.net/jiangwei0910410003/article/details/17465457

11.activity之间传递数据的几种方法:http://blog.csdn.net/zyq0335/article/details/7636724

12.activity里面有一个fragmnet,它们的生命周期对比:http://blog.csdn.net/zjclugger/article/details/10442335

13.onPause()和onStop()区别,什么时候只调用onPause(),而不调用onStop():http://blog.csdn.net/lamp_zy/article/details/7703893 ,http://blog.csdn.net/u014285517/article/details/47103251

14.将要跳转到activity的theme是android:windowIsTranslucent=”true” ,Android:theme="@android:style/Theme.Dialog",只调用onPause(),而不调用onStop(),但会调用onCreate()

15.数据结构

array、list、hashmap查找一个值的时间复杂度 http://www.tuicool.com/articles/N7rm6vr  ,http://blog.chinaunix.net/uid-25304914-id-4858568.html

Java中List和ArrayList的主要区别:http://blog.csdn.net/duanyipeng/article/details/7851138

ArrayList和LinkedList区别 时间复杂度 与空间复杂度:http://www.cnblogs.com/zjss/p/5232048.html

ArrayList和LinkedList的几种循环遍历方式及性能对比分析:http://www.cnblogs.com/interdrp/p/5004000.html

使用增强型for循环语法(也被称为for-each循环):http://blog.csdn.net/guolin_blog/article/details/42318689

Set如何去重及时间复杂度,TreeMap和TreeSet如何排序及时间复杂度

TreeMap的实现是红黑树算法的实现:http://blog.csdn.net/chenssy/article/details/26668941
HashSet的实现原理:http://www.cnblogs.com/xwdreamer/archive/2012/06/03/2532999.html

Java 数据结构内存分配及容量扩充:http://blog.csdn.net/cdl2008sky/article/details/7823129

16.开源框架原理研究,如React Native、okhttp、EventBus,dagger,HotFix,Rxjava

教你如何使用okhttp缓存http://blog.csdn.net/u014614038/article/details/51210685

17.dns劫持是什么,如升级下载App如何确保是我们想要下载的apk,而地址没有被劫持

如何截取应用内访问的网络地址

18.synchronized实现原理:http://www.jianshu.com/p/5dbb07c8d5d5http://www.open-open.com/lib/view/open1352431526366.html

synchronized和volatile区别:http://blog.csdn.net/fanaticism1/article/details/9966163 ,http://www.cnblogs.com/dolphin0520/p/3920373.html

Java并发编程-Lock:http://www.cnblogs.com/dolphin0520/p/3923167.html

synchronized 和static synchronized 区别:http://www.cnblogs.com/shipengzhi/articles/2223100.html  ,

Java多线程并发synchronized的测试与合理使用:http://soft.chinabyte.com/database/423/12594923.shtml

19.同时startService()、bindService,及bindService的应用场景:http://blog.csdn.net/fantcy/article/details/8547172

20.java的class字节码文件:http://blog.csdn.net/lsbhjshyn/article/details/9329339

21.java Exception和Error的区别,所有异常都能够被捕获吗:http://www.oschina.net/translate/10-java-exception-and-error-interview-questions-answers-programming

写代码使得分别出现StackOverflowError和OutOfMemoryError:http://www.cnblogs.com/xudong-bupt/p/3360206.html

22.内存换性能是怎么实现的?以时间换空间和以空间换时间分别是什么意思?

23.java内存分为哪些区?http://blog.csdn.net/lyerliu/article/details/6311709

24.http header包含的内容是什么?

断点续传,http://blog.csdn.net/wwj_748/article/details/20146869

HttpUrlConnection方式:

httpURLConnection.setRequestProperty("Range", "bytes=" + start + "-"+fileSize);

HttpClient方式:

Header header_size = new BasicHeader("Range", "bytes=" + size + "-"  + fileSize);  

            httpGet.addHeader(header_size);  
            response = client.execute(request);  
            InputStream is = response.getEntity().getContent();

25.String详解,以及concat()、intern()

26.SparseArray,SparseBooleanArray,以及LongSparseArray。SparseArray<Interger,Object>代替HashMap,ArrayMap也可代替HashMap,但是在数据量比较大的情况下,那么它的性能将退化至少50%:http://blog.csdn.net/null1989/article/details/17589815

android性能优化SparseArray和ArrayMap:http://www.th7.cn/Program/java/201511/693721.shtml

ArrayMap与HashMap有哪些不同:https://www.douban.com/note/526353043/?type=like

27.invalidate(Rect)局部刷新

28、android界面性能优化:

Android帧率测试:http://blog.csdn.net/xiaobai20131118/article/details/50698162
Android界面性能调优手册:https://segmentfault.com/a/1190000004547751

Android性能优化:
Android 性能测试:http://blog.csdn.net/mdx20072419/article/details/46638275
android客户端性能测试 (一):http://blog.csdn.net/marryshi/article/details/44178285

Android最佳性能实践(三)——高性能编码优化:http://blog.csdn.net/guolin_blog/article/details/42318689
Google

Performance Tips:http://www.360doc.com/content/14/0828/03/4587493_405238038.shtml

Best Practices for Performance:https://developer.android.com/training/best-performance.html

29.Android 性能分析工具

DDMS:http://www.xuebuyuan.com/1291595.html

Android系统性能调优工具介绍(TraceView、Systrace、Oprofile):http://blog.csdn.net/innost/article/details/9008691

剖析Android Traceview效率检视工具:http://www.2cto.com/kf/201111/111029.html

正确使用Android性能分析工具——TraceView:http://blog.jobbole.com/78995/
30.sharedpreference、sqlite存在哪?升级app会覆盖吗:http://blog.csdn.net/jie1991liu/article/details/50339797

31.java泛型,权限修饰符,java和C、C++的区别

32.http、https、http的header,http包含的方法,TCP/IP协议详解

33.观察者模式源码研究,自己如何实现高性能观察者模式

34.java是什么编码?其它各种编码的区别

35.蓝牙开发 智能遥控:http://blog.csdn.net/hellogv/article/details/6042091

Android 蓝牙对战五子棋项目实现(含人机对战功能):http://blog.csdn.net/qq_22770457/article/details/51622094

36.android系统中的app安装后的各个文件路径在哪里?:http://zhidao.baidu.com/link?url=ZAI6oBmW4XqFvBiK5zMA8-OTxrZmEdR2K9fco_5Dm8jeUU3lwyqH0e2QmTaP5GC458AOtN3PuDfEaFdEEbG3cVL9c-t9w2pIDuo2Gl9cFKa

37.APP的缓存文件到底应该存在哪?看完这篇文章你应该就自己清楚了:http://blog.csdn.net/shakespeare001/article/details/50546809

Android开发:计算缓存大小并且清空缓存:http://blog.csdn.net/baidu_29835301/article/details/51787950

仿360一键清理实现(一):http://blog.csdn.net/tangnengwu/article/details/38226823
android 垃圾清理 文件清理:http://blog.csdn.net/tangnengwu/article/details/49488149
android 内存清理:http://blog.csdn.net/tangnengwu/article/details/49488199

38.进程间通信的几种方式:http://blog.csdn.net/zhuangyalei/article/details/50515039http://blog.csdn.net/lmj623565791/article/details/47017485

activity之间传递数据的几种方法:http://blog.csdn.net/zyq0335/article/details/7636724

39.Android中程序与Service交互的方式:http://blog.csdn.net/he90227/article/details/33730545 ,

Android Service与Activity之间通信的几种方式:http://blog.csdn.net/xiaanming/article/details/9750689

Android中程序与Service五种交互的方式:http://blog.csdn.net/he90227/article/details/33730545
40.git commit多次怎么合并为一次,git rebase;把这次commit合并到其它的commit,
git commit合并 
git查看(某个)文件的修改历史
41.为什么要用多进程,有什么好处?:http://www.tuicool.com/articles/a2yIRf3

Android性能优化典范之多线程篇:http://www.cnblogs.com/bugly/p/5519510.html

UniversalImageLoader线程池分析:http://blog.csdn.net/wubo_fly/article/details/49783545
42.内部类什么时候用?内部类和外部类互相调用,静态内部类:http://www.tuicool.com/articles/n2aYra7
43,view绘制过程源码,onDraw和draw哪个先执行,onMeasure详解

View中的draw和onDraw的区别:http://blog.csdn.net/fener10289/article/details/8231712
 View 绘制流程:http://blog.csdn.net/yujun411522/article/details/46226135
Android应用层View绘制流程与源码分析:http://blog.csdn.net/yanbober/article/details/46128379
44.fragment点getActivity方法会报空指针吗?在onCreate中会报空指针吗
45.task的taskaffinity

46.Android内存分析工具:http://blog.csdn.net/xu_fu/article/details/45678373

Android Studio 内存分析工具:http://www.gdky005.com/2016/06/20/使用-Android-Studio-内存分析工具/

47.android 开发如何做内存优化:http://www.cnblogs.com/kingOfPointer/archive/2012/12/21/2828018.html

 Android最佳性能实践(一)——合理管理内存:http://blog.csdn.net/guolin_blog/article/details/42238627

ANDROID内存优化(大汇总——上):http://blog.csdn.net/a396901990/article/details/37914465

优化Android应用内存的若干方法:http://blog.csdn.net/wxlinwzl/article/details/24381897

Android内存机制分析:http://blog.csdn.net/mao520741111/article/details/26603805

[Android 性能优化系列]内存之终极篇--降低你的内存消耗:http://blog.csdn.net/kifile/article/details/40751665

分析内存的使用情况:http://blog.csdn.net/guolin_blog/article/details/42238633/

App调试内存泄露之Context篇(上):http://www.cnblogs.com/qianxudetianxia/p/3645106.html

App调试内存泄露之Context篇(下):http://www.cnblogs.com/qianxudetianxia/p/3655475.html

48.Fragment的通信问题, 新建Fragment为何不要在构造方法中传递参数:http://blog.csdn.net/EthanCo/article/details/50912539

Fragment 使用总结:http://www.cnblogs.com/vivid-stanley/p/3657976.html

Fragment解决屏幕旋转(状态发生变化)状态不能保持的问题:http://blog.csdn.net/weihan1314/article/details/7997421

49.Android程序的执行流程分析:http://blog.csdn.net/passtome/article/details/7699819

Android应用程序启动过程源代码分析:http://blog.csdn.net/luoshengyang/article/details/6689748

android的编译和运行过程深入分析:http://blog.csdn.net/zunguitiancheng/article/details/50612606

50.android cookie

Android中OKHttp保存Cookie并传入WebView:http://blog.csdn.net/u011638883/article/details/50516264#comments

51.线程池原理,线程池有几种队列:http://blog.csdn.net/sd0902/article/details/8395677

深入理解java线程池—ThreadPoolExecutor:http://www.jianshu.com/p/ade771d2c9c0

java 线程池的原理和实现:http://liuzl121.iteye.com/blog/1779039
线程池的原理及实现:http://blog.csdn.net/hsuxu/article/details/8985931
理解线程池的原理:http://blog.csdn.net/he90227/article/details/52576452
java自带线程池和队列详细讲解:http://zmx.iteye.com/blog/2161831
Java并发编程:线程池的使用:http://www.cnblogs.com/dolphin0520/p/3932921.html

52.屏幕适配有关知识,720P图片放在哪个drawable

关于Android图片分辨率应该放到哪个文件夹的问题:http://www.w2bc.com/Article/19871

53.listview 优化的知识点,convertview复用原理:http://www.tuicool.com/articles/vimeAj,滑动时不加载图片

54.深入理解 Looper、Handler、Message三者关系(JD):http://blog.csdn.net/lmj623565791/article/details/38377229/

android的消息处理机制(图+源码分析)——Looper,Handler,Message:http://www.cnblogs.com/codingmyworld/archive/2011/09/14/2174255.html

Looper 和Handler的对应关系:http://blog.chinaunix.net/uid-20937170-id-4649821.html

Android内存优化:Handler:http://blog.csdn.net/bdmh/article/details/49251849

handler.removeMessages(int)//移除某一个message

handler.removeCallbacksAndMessages(null); //  移除所有message

56.java内存管理原理:http://www.cnblogs.com/killmyday/archive/2013/06/12/3132518.html

Android 之 内存管理:http://blog.csdn.net/xieqibao/article/details/6707519

JAVA的JVM的内存可分为3个区:http://blog.csdn.net/huoyunshen88/article/details/8109018

堆和栈的作用及区别 :http://blog.chinaunix.net/uid-26583794-id-3240534.html

57.对加密的了解(DES/3DES/AES区别 ):http://blog.csdn.net/aa2397199142/article/details/50844879

Android平台和java平台 DES加密解密互通程序及其不能互通的原因:http://blog.csdn.net/x605940745/article/details/42124285

Java 进行 RSA 加解密时不得不考虑到的那些事儿:http://blog.csdn.net/defonds/article/details/42775183

 Base64编码及其作用:http://blog.csdn.net/benbenxiongyuan/article/details/7756912

 深入理解Android之Java Security第一部分:http://blog.csdn.net/innost/article/details/44081147

58、Android获取本地图片缩略图终极解决方案:http://blog.csdn.net/qq_22770457/article/details/51492937

Android得到视频缩略图:http://blog.csdn.net/bulreed/article/details/40404657

59.跨进程、跨线程、handler  实现原理

跨进程的四种方法:Activity、BroadcastReceiver、IPC、ContentProvider

60.sqlite、CursorLoader、ContentObserver、contentprovider详解

android 对sqlite数据库的增删改查:http://blog.csdn.net/vrix/article/details/6717090

sqlite升级,和表属性变化,如何处理?:http://blog.csdn.net/qinpanke/article/details/8007851http://blog.csdn.net/yaya_soft/article/details/17089353

 Android入门:监听ContentProvider数据改变:http://blog.csdn.net/xiazdong/article/details/7706977

61.fragment和activity之间的区别:http://www.tuicool.com/articles/3QvMRfz

62.多点触控:http://www.2cto.com/kf/201505/401063.html

63、Android单元测试和自动化测试(如:Monkeyrunner)

64、MediaPlayer自定义播放器:http://blog.csdn.net/hellogv/article/details/6429455

MediaPlayer播放网络音频的实现方法:http://www.thinksaas.cn/topics/0/73/73998.html

65、如何高效遍历手机中txt文件

66、代码实现下载一张图片保存到sd卡:http://www.jb51.net/article/76222.htm

67、registerReceiver和unregisterReceiver的问题

重复注销广播处理函数是会报错的问题:http://blog.csdn.net/hzbigdog/article/details/11062961

没有unregisterReceiver会报错的问题:http://blog.csdn.net/zhufuing/article/details/17084601

68、Object类的方法,实现TreeSet去重需要实现哪两个方法,判断是否==需要实现哪两个方法?

69.代码混淆注意事项:http://blog.csdn.net/u013823101/article/details/51451851

70、app应用内升级采用断点续传,如何确保我们下载的apk安全无误,是能够被正常安装的

71、自定义View三个构造方法的意义:https://segmentfault.com/q/1010000004502015

72、RemoteViews用法:http://blog.csdn.net/qaz13177_58_/article/details/7497944

73、View、ViewGroup、Window、DecorView关系:http://www.imooc.com/article/3411

74、如何设计SDK

Android应用内社区SDK技术架构浅析:http://blog.csdn.net/bboyfeiyu/article/details/45583515

Android组件模型解析:http://www.cnblogs.com/six-moon/p/4923773.html

怎么设计一个分享的sdk,怎么让它停留在分享的应用中,以及他们栈中activity的变化

75、Android源码你看过那些讲讲,如activity启动流程,View绘制过程,binder,looper,apk加载过程与sex分包(dex、odex等)

76、MVP 

 浅谈 MVP in Android:http://blog.csdn.net/lmj623565791/article/details/46596109


文章最后发布于: 2016-06-14 23:43:37
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览