android重点总结

来源:互联网 发布:益盟大单比率指标源码 编辑:程序博客网 时间:2024/05/18 21:08

最近要完成的任务

1. Android一些优化方案

 2. 什么是过渡绘制,如何防止过渡绘制
 3. 事件分发机制
 4. ListView的优化
 5. Binder机制
 6. 在多进程中,Application会启动几次
 7. 单例模式,双锁原理,volatile原理,静态内部类实现单例的原理。
8. Java多线程,synchronized
11. 关于数据库的一些问题,SQLite的相关操作,没办法,我在华为唯一一个做的和java相关的项目,但是不太擅长数据库。
12. 网络相关的问题,网络的五层模型,又问了TCP和UDP,还有Android相关的长连接,这里问的比较深。
 13. 开始Android先关的知识,Handler机制,Acticity的生命周期以及四种启动模式,各自特点,Service的两种启动模式生命周期,如果同时使用两种启动模式是否可以,顺势讲到Binder,什么时候可以得到控件的大小,最后写了一道链表反转的算法题
14. 问了项目相关的问题,这部分根据自己的项目经验,由于大家的经验都不同,这里我就不详细说了。
 15. 设定一个场景,怎么去实现相应的功能,因为快手这个部门想做社交,因此这里是问我是如何实现微信的联系人页面(包括与服务端有什么样的交互)
 16. 最后也是一个算法,写出所有数组的子序列
17. volley的源代码,在图片缓存部分讨论了挺长时间,http中缓存机制,Last-Modify的作用等。
 18. fragment的生命周期
 19. service一些知识
 20. 事件分发机制
 21. Binder实现机制,Stub类中asInterface函数作用,BnBinder和BpBinder区别。
 22. gradle中buildToolsVersion和TargetSdkVersion的区别是什么
 23. 手机适配一些方案
 24. hashmap的实现原理
 25. 静态方法是否能被重写
26. 3次握手和4次挥手的原因,以及为什么需要这样做。
 27. 数据结构,搜索二叉树的一些特性,平衡二叉树。
 28. hashmap是如何解决hash冲突的
 29. 进程与线程区别
 30. 写了一个二分查找和单例模式
 31. http中的同步和异步
 32. 聊了一些项目上做的东西,问了问职业规划
33. 我认为Android做的优秀的几个地方,然后又根据我说的问了问比较深入问题。
34. Android是如何进行资源管理的。
 35. java比较重要的几个特性
 36. 网络五层结构,每一层协议,由于我网络不是很好,还问了一些其他的问题(例如MAC地址和ip地址的区别等)。
 37. 为什么离开原来公司,以及职业规划,然后因为面试完大概就晚上8点了,就先让我回去,下周让hr跟我联系,我想这是应该通过面试了吧。
1. 单例,快排,回型打印二维数组
 38. 写一个死锁,死锁是怎样产生的,怎样防止死锁
 39. Acticity启动模式有几种,分别代表什么意思
 40. 聊项目都做了些什么
41. 字符串反转,讨论复杂度。
 42. 聊经历和项目
43. 给定一个int型 n,输出1~n的字符串例如 n = 4 输出“1 2 3 4”
 44. 输出所有的笛卡尔积组合
 45. 单例模式
 46. 最长上升子序列
47. 对刚才做的题,一些错的地方做了讨论,主要是类的加载和内部类方面的知识,尤其一些深入到JVM层的知识的确自己有一些不足,不过大部分都还是能答出来。
 48. 双亲委托机制,类的五个加载过程。
 49. java类加载器的加载流程。
 50. Binder机制,从java到framework再到kenral层,面试官问的都很详细,遇到不会的也都会跟我解释。
 51. Serializable和Parcelable的区别。
 52. View的绘制流程,详细到framework代码,讨论到不确定的地方,立马打开电脑和我一起看源码。
 53. 事件分发机制。
 54. 常用设计模式,使用静态内部类实现单例的原理是什么。
 55. 线程同步,CopyOnWriteArrayList怎样实现。
 56. Volley源码,EventBus源码。
57. 项目介绍,聊一些项目上的问题
 58. 下拉listview的实现,需要注意的地方和优化的地方(不是lsitview的优化,是下拉的优化)。
 59. Android上一些优化方案
 60. 介绍了一下现在做的项目,大体说明了现在所用到的技术。
 61. 聊项目,GLSufaceView,OpengGL,Shader相关一些知识,在项目中做的优化
 62. gc是根据什么来回收一个对象的,引用计数和gc root分别怎么实现。
 63. 怎样会产生内存泄露,举一个具体的例子,使用什么检查内存泄露
 64. 自定义View的绘制流程
 65. 给出二叉树和一个值,找出所有和为这个值的路径;{1,3}{3,6}{3,4}{6,8}区间去重,最少去掉几个集合,可以让这个集合没有交集。
66. 什么是ANR,Activity、BroadcastReceiver、Service对ANR时间限制分别是多少,怎么处理ANR,除了系统生成trace.txt文件,怎么在程序中检测ANR。写出伪代码。
 67. 编解码一些知识,I帧,B帧,P帧区别。
 68. Android一些优化方案。
 69. 算法 n/m,怎么判断得数是无限循环小数。
70. 介绍项目。 
71. 事件分发机制。 
72. 算法,将一个字符串转换成int型数字,考虑 错误输入,溢出,正负值等一些条件,考细心。 
73. 给出一个搜索二叉树,输出一个排序好的双向链表。
74. 类的加载过程,Person person = new Person();为例进行说明。
  75. JVM相关知识,GC机制。
  76. 类的加载器,双亲机制,Android的类加载器。
  77. Android中进程的级别,以及各自的区别。
  78. 插件化原理。
  79. 集合框架,list,map,set都有哪些具体的实现类,区别都是什么。
  80. concurrentHashmap原理,原子类。
  81. volatile原理。
  82. Binder机制。
  83. View的绘制流程,事件传递机制,Handler异步消息机制。
  84. Interger中的128(-128~127),这里考的是常量池的概念,这个没回答上来。
  85. 线程池的相关知识。
  86. Handler机制,HandlerThread实现等等。
  87. LRUCache算法是怎样实现的。
88. 说了说项目中相关的知识。
  89. 聊了聊之前做过的项目。
  90. 内存泄露,怎样查找,怎么产生的内存泄露。
  91. 怎样计算一张图片的大小,加载bitmap过程(怎样保证不产生内存溢出),二级缓存,LRUCache算法。
  92. 简单介绍一下java中的泛型,泛型擦除以及相关的概念。
  93. Android优化相关的只是,布局优化、内存优化等等。
  94. SQL相关的知识优化的方案,这里我直接说不太了解,就过了。
  95. 算法题,m * n的矩阵,能形成几个正方形(2 * 2能形成1个正方形,2 * 3 2个,3 * 3 6个)
96. 项目相关。
 97. Android优化.。
 98. 插件化相关技术,热修补技术是怎样实现的,和插件化有什么区别。
99. 询问了我博客上写的一些东西,从项目立意谈起,到设计,再到详细的技术实现,可谓是面面俱到,由于自己写的博客还是比较熟悉,回答的还不错。
 100. GLSurfaceView的相关知识,OpenGL,Shader,绘制流程。
 101. 询问当前做的项目,以及到具体的实现和优化。
 102. 多进程间的通讯,Binder机制。
 103. 询问看过哪些框架源码,EventBus,Volley讲了一下。
广度:比较新的技术(Rxjava,插件化等),JVM,GC,网络,数据库,Android(一般不会询问之前面试官问过的问题)。
深度:一般会通过1或2个问题来考察,例如:map接口下都有什么子类->hashmap和hashtable区别->hashmap实现原理->怎么解决hash冲突->是否了解concurrentHashmap->concurrentHashmap实现原理->volatile实现原理(concurrentHashmap读是不加锁的,使用到了volatile)。
项目中的贡献,所做的优化。
设计能力,基本上不多,这个要看面试的岗位,因为我这里面试的只是高级开发,并不是架构。
工作中的亮点和突出。



原创粉丝点击