4 年 Android 开发 13K,刷完这份 1307 页 Android- 面试全套真题解析, 跳槽涨薪 15K
底层,数组,链表。扩容问题,我概括了一下所有的集合类的扩容方式都是装载因子+当前容量+需要扩容容量。我说线程安全的 List 有 CopyOnWriteArrayList,但是面试官没有往下问。
8、为什么扩容很多情况下都是扩容为两倍?这个不会,但是说底层代码很多情况下扩容都是移位操作进行的。可能和查询相关?
9、HashMap 和 HashTable 对比,ConcurrentHashMap。HashTable 不是 Map,HashTable 是 Dictionary,而且锁的时候是锁数组,并发的粒度很大。ConcurrentHashMap 用的是分段锁而且有一个:判空+判相等+CAS+synchronized 的一个锁的过程,所以很强大。如果愿意可以看一下我的博客: https://blog.csdn.net/m0_46962786
10、CAS 相关。
11、知道优先级反转吗?不知道……回去研究去……
12、TCP 三次握手四次挥手。主要思路是通过 SACK 和全双工来整体讲解。
13、代码,如何判断两个链表是否相交 。我最开始想成了找到第一个相交结点,然后说了思路,面试官说有没有更好的。然后直接判断最后一个结点是否相等。面试官说如果有环呢,那只能用 HashSet 存一下了。
14、反问。问了下面试官是什么事业群。说是 PCG 平台,感觉自己应该是被 PCG 捞起来了。后面就问了一下公司的一些不疼不痒的问题。
总结整体答得还可以,就是以为是 2 点面试,结果 3 点 30 才面上,可能是我记错时间了。状态没有调整到最好。
整理了这几年学习的所有的移动高级工程师进阶技术,希望可以给跟我一样想进阶但是没有方向的朋友提供一个参考↓↓↓[https://github.com/xieyul
iang/Note-Android]( )
二面
0、自我介绍。1、hashCode 和 equals 方法。2、HashMap,hash 冲突解决,红黑树相关。3、String、StringBuilder。面试官问 String 的加法
String a = "a"+"b"+"c";
StringBuilder sb = new StringBuilder();a = sb.append("a").append("b").append("c").toString();
这两者效率差别,我说没差别啊,第一种 String 的加法被编译器优化成第二种,他不信我……不过还好,最后达成共识面试官面试完自己去查。现在复盘觉得面试官应该想问的是这种情况:
String a ="";a+="a";a+="b";a+="c";
我还是对的。
4、wait、notify。问是不是只能在有锁的情况下 wait 和 notify。[图片上传失败...(image-1692c4-1602502611210)]5、线程间通信方式。handler 那一套。
6、快排原理,最好情况和最坏情况时间复杂度。最坏情况逆序 n**2,顺序情况我的算法还是 nlogn,问了优化思路。
7、算法题,
用了贪心没 ac,面试官提示快排,没想明白……
8、思考题,如果我想将一颗二叉树存入文件,怎么样的格式存储可以使得读取效率最高。这题是个开放讨论题,和面试官一直在讨论怎么做。
【当时以为自己凉了,没想到顺利收到了三面的通知】
三面
0、自我介绍
1、实习工作深挖
2、RePlugin 原理深挖,其他插件化框架对比
3、为什么要选择 RePlugin 框架
4、你觉得自己对于 Android 掌握到了什么地步
5、看过什么源码
6、你为什么要看源码
7、你为什么要写博客
8、知道哪些著名开源框架
9、什么是进程,进程调度算法
10、什么是线程
11、你觉得什么是 JVM
12、有哪些线程同步算法
13、死锁是什么,举个例子
14、Object 有哪些方法
15、Java 异常有哪些,Error 和 Exception 区别
16、OSI 七层模型,TCP、UDP 是哪一层,应用层有哪些协议
17、如果要设计一个大量图片下载的方法,如何确定并发量,有哪些指标。
18、APP 间传递消息安全吗?要怎么做才能安全呢?
19、广播怎么分类
20、自定义 View 重写的关键有哪些,onLayout 和 onMeasure 区别
21、Android 有哪些动画,MotionLayout 讲一下。MotionLayout 使用场景。
22、Activity 四种启动模式,SingleTask 和 SingleTop 的使用场景
23、一些 Framework 层的问题,不太会所以记不得了。当时收藏一位 B 站 UP 主的视频,有需要可以去看一下
24、你为什么想了解 Framework 层知识。
25、算法题。
26、你对于我们的 Offer 的态度
27、闲聊
最后
学习和复习这件事情是需要坚持的,但是找准方向,正确的学习方法以及优质的资源都是很重要的。
评论