├── .DS_Store ├── README.md └── image ├── .DS_Store ├── QQ20190402-223020@2x.png ├── androidImg.png ├── arraylist与linketlist差别.png ├── hashmap与hashtable区别.png └── jvm类加载机制.png /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whatshappen/Android_Question/f53448675b0600288a71d90c67a4db07a35b3bea/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Android_Question 2 | 记录2019年社招面试过程中的一些问题,供大家参考,可以补充和指正,一起成长~ 3 | 4 |
5 | 6 |
7 | 8 | ## 面试题: 9 | ###### Issues中有参考答案。可以补充指正,也可提及自己的答案~ 10 | 11 | #### 面试题1. 12 | Android开发过程中的版本适配问题? 13 | 14 | #### 面试题2. 15 | 关于协程的概念 16 | 17 | #### 面试题3. 18 | synchronized和lock的区别? 19 | 20 | #### 面试题4. 21 | Handler机制如何保证消息不错乱?消息延迟是如何实现的?Handler、Looper、MessageQueue三者对应关系?内存泄漏如何避免?Looper中的死循环为什么不会引器主线程ANR? 22 | 23 | #### 面试题5. 24 | 开发过程中如果想替换第三方jar中的某个class文件,或者在开发时你的class文件与jar中的重名,但是你想使用自己的应该如何解决?如果你替换掉某个方法又该怎么解决? 25 | 26 | #### 面试题6. 27 | IO与NIO的区别? 28 | 29 | #### 面试题7. 30 | 单例模式有几种写法以及各自的优劣? 31 | 32 | #### 面试题8. 33 | ArrayList 和LinketList区别?hashmap的实现原理?hashmap与hashtable的区别? 34 | 35 | #### 面试题9. 36 | gson序列化数据时如何排除某个字段? 37 | 38 | #### 面试题10. 39 | ButterKnife与Xutils注解的区别?以及Retrofit中的注解是如何处理的? 40 | 41 | #### 面试题11. 42 | jvm的类加载机制? 43 | 44 | #### 面试题12. 45 | 列举一些git版本控制的常用操作符? 46 | 47 | #### 面试题13. 48 | AsyncTask的原理以及弊端?AsyncTask为什么要求在主线程加载,对象为什么要在主线程创建? 49 | 50 | #### 面试题14. 51 | Android开发中的屏幕适配方案? 52 | 53 | #### 面试题15. 54 | 多线程中sleep和wait的区别? 55 | 56 | #### 面试题16. 57 | 输出字符串中的第一个不重复的字符,例如:
58 |    “hello”输出 ‘h’
59 |    “abbac”输出 ‘c’
60 |    “abdabe”输出 ‘d’ 61 | 62 | #### 面试题17. 63 | 对有序int数组去重,并输出去重后的长度,并打印出来,要求时间复杂度为O(n),空间复杂度为O(1)。
64 | 例如:int[] array = {-1,0,0,2,4,4,4,6};
65 |    长度为:5,打印结果为:-1,0,2,4,6 66 | 67 | #### 面试题18. 68 | 假设有A,B,C三个线程,在A线程的执行过程中去执行B线程,并且等待B线程的执行结果,然后去执行C线程,然后当C线程执行完成后,返回结果给A线程。不阻塞线程,如何实现?(相关描述我也记不太清了,可能有些不准确,考点就是Future) 69 | 70 | #### 面试题19. 71 | ThreadLocal作用? 72 | 73 | #### 面试题20. 74 | 深复制(深拷贝)与浅复制(浅拷贝)的区别? 75 | 76 | #### 面试题21. 77 | 大图的局部加载(BitmapRegionDecoder),在不使用BitmapRegionDecoder类的情况下,自己实现局部加载? 78 | 79 | #### 面试题22. 80 | 常见的排序算法?手写快排?对冒泡排序的优化? 81 | 82 | #### 面试题23. 83 | 在使用git管理时,commit到本地库后,发现漏了文件,如何处理?(rebase命令合并两次commit的数据) 84 | 85 | #### 面试题24. 86 | kotlin中的内联函数 87 | 88 | #### 面试题25. 89 | kotlin中的两种懒加载区别?(by lazy、lateinit) 90 | 91 | #### 面试题26. 92 | kotlin中扩展函数的弊端? 93 | 94 | #### 面试题27. 95 | 在使用kotlin开发过程中,遇到过哪些坑? 96 | 97 | #### 面试题28. 98 | Activity中的context与Application中的context区别? 99 | 100 | #### 面试题29. 101 | Activity的四种启动模式?当A配置了singleTask启动模式后,A-->B-->C-->D ,此时再启动A,会回调哪个方法?(onNewIntent()生命周期方法) 102 | 103 | #### 面试题30. 104 | Activity与Activity之间传递数据?
105 | Fragment与Activity之间传递数据?
106 | Fragment与Fragment之间传递数据?
107 | 108 | 109 | #### 面试题31. 110 | Activity的启动过程?(不是Activity的生命周期,或者换一种问法:应用的启动过程?) 111 | 112 | #### 面试题32. 113 | js与native互调?安全问题处理?WebView对url的拦截? 114 | 115 | 116 | ###### 源码相关问题(可以在博客上找到相关资料): 117 | #### OkHttp源码/原理分析? 118 | 119 | #### Retrofit源码/原理分析? 120 | 121 | #### EventBus源码/原理分析? 122 | 123 | #### Rxjava源码/原理分析?(还有一次被问到Rxjava的调度器与worker关系?(----当时表示一脸懵逼😂)) 124 | 125 | #### Glide源码/原理分析?(Glide、ImageLoader、Picasso、Fresco各种的优缺点?Glide的缓存处理) 126 | -------------------------------------------------------------------------------- /image/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whatshappen/Android_Question/f53448675b0600288a71d90c67a4db07a35b3bea/image/.DS_Store -------------------------------------------------------------------------------- /image/QQ20190402-223020@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whatshappen/Android_Question/f53448675b0600288a71d90c67a4db07a35b3bea/image/QQ20190402-223020@2x.png -------------------------------------------------------------------------------- /image/androidImg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whatshappen/Android_Question/f53448675b0600288a71d90c67a4db07a35b3bea/image/androidImg.png -------------------------------------------------------------------------------- /image/arraylist与linketlist差别.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whatshappen/Android_Question/f53448675b0600288a71d90c67a4db07a35b3bea/image/arraylist与linketlist差别.png -------------------------------------------------------------------------------- /image/hashmap与hashtable区别.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whatshappen/Android_Question/f53448675b0600288a71d90c67a4db07a35b3bea/image/hashmap与hashtable区别.png -------------------------------------------------------------------------------- /image/jvm类加载机制.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/whatshappen/Android_Question/f53448675b0600288a71d90c67a4db07a35b3bea/image/jvm类加载机制.png --------------------------------------------------------------------------------