这里是双非本科毕业一年的Android开发渣渣,坐标深圳.
我社招的状态是在职精投,除了富途,还投了腾讯和字节,其中腾讯音乐的QQ音乐部门捞了我,但是很可惜,倒在了二面,QQ音乐的面经后面整理了再发吧。
感觉一年经验的社招和校招差不多,四轮都是视频面试,面试官都很准时,而且人都很好,在回答卡住的时候会给与提示,在反问环节我也看出了面试官的思路是非常清晰的,总的来说整个面试过程非常nice。
9.28投简历,9.29晚约视频面试。
9.30 一面 1h15min :
-
为什么想换公司?
-
在开发中遇到的最大的困难?怎么解决的?
-
接口和抽象类的区别,一个类的能不能多继承,能不能实现多个接口
-
接口类的非方法能不能被修改?不能,接口类里非方法的类型都是final修饰,所以必须初始化并且不能被修改。
-
抽象类的变量可以被继承和修改么?可以。
-
final关键字
-
GC如何标记要回收的内存?GC Roots有哪些?
-
线程安全问题,sychronized、lock/unlock的区别使用,公平锁和非公平锁的概念。
-
sychronized是如何体现公平锁和非公平锁的(CAS、锁自旋)?
-
HashMap原理,在什么时候扩容(当加入的元素大于阈值threshold后)。 以及线程安全的
HashTable
、ConcurrentHashMap
的原理。 -
View的事件分发
-
布局优化怎么做的?LinearLayout和RelativeLayout在性能上的区别。
-
WebView的优化,如果出现了数据的交互该怎么做?(AIDL),Binder怎么实现进程间通信的?mmap的模型?
-
内存优化?RecyclerView的缓存机制,如何优化?
-
项目中的联网模块怎么实现的?UDP和TCP的区别?
-
TCP会检查包的顺序么,Tcp怎么控制包的发送(滑动窗口)。
-
看到项目中使用了WebSocket,讲下它和Http的区别?
-
RxJava的操作符?项目中是如何使用RxJava的?
-
快速排序和冒泡排序的稳定性问题
-
编程题:将一个分数转化成小数形式输出,因为分数只可能是有限小数或无限循环小数。如果小数是无限循环小数,则使用小括号括起。
-
这题思路是做while轮除。我界定是否产生了无限循环小数是使用HashTable。
-
对我们公司了解多少?有什么想问的?
10.4 二面 45min
- 为什么想要离开当前的公司
- "abcde"字符串在内存中占多大,这些字节在JVM的编码格式
- JVM堆和栈的作用,进程和线程的作用,堆栈和线程进程的对应关系
- 死锁怎么产生?如何去解决死锁,多个方案
- 线程同步问题,自增是原子操作吗?如果要做到线程安全的自增要做怎么做?
- 快排的过程,时间复杂度,n*lgn是如何得来的?
- Http是在哪一层,Https使用了非对称加密还是对称加密?TCP和UDP的区别,为什么UDP不可靠还要使用UDP
- 拥塞控制和流量控制的区别
- 智力题:给一篮子鸡蛋,如何用最少的比对次数找到最大的和最小的鸡蛋, 我的回答是 一开始,随便拿出两个鸡蛋,然后接下来剩下的鸡蛋每拿出一个,就和这两个进行比较,如果比两个中小的鸡蛋小就替换小的那个,如果比大的鸡蛋大就替换掉大的那个,这样比较次数就是 (n-2)2 ,因为有些鸡蛋只用比一次就行了(因为是最小的就不用往大的比了),所以结果是小于 (n-2)2的,但我觉得应该还可以更加快....
- 编程题,排序二叉树的插入,如果插入相同的数,需要做什么保证树可以还原(即不允许丢弃到相同的数)?
- 有什么要问的?
10.8 三面 1h20min
- 两桶油漆,A桶全是红色油漆,B桶全是蓝色油漆,将A桶中取一勺倒入B中,再从B桶中取一勺倒入A中,求A桶的蓝红比例和B桶的红蓝比例,是大于、小于还是等于?
- 用一个数组实现一个循环队列
- 给定一个只有“R”“G”“B”三个字母的字符串,用一次遍历基于原字符串将他们以“RGB”的顺序排序好(LeetCode原题)
- 52张扑克牌,取一张不放回,再取一张, 两张为相同颜色的概率是多少?
10.10 hr面 45min
- 自我介绍
- 为什么选择计算机这个专业
- 为什么要离开当前的公司
- 你是深圳的,为什么会选择在东莞工作。
- 在上一个公司学到了什么
- 选择公司因素,按优先级排个序
- 用三个关键词描述自己
- 代入用户思维和不代入用户思维做产品有什么区别?
- 家庭情况,有没有女朋友?
- 你觉得一个好胜心过强的人会有什么样的问题?
- 你会想在团队里面承担一个什么样的角色?
- 平时的爱好是什么
- 有没有给自己制定一些计划?对自己的要求有多高?
- 学习的渠道、方式,有GitHub吗?看什么样的书?
- 学习是基于公司项目学习,还是个人兴趣学习?
- 预计到岗时间,期望薪资
- 反问环节
总结一下,技术面环节主要考项目和Java基础、编程题要注意规范和思路是否最优。
和HR小哥哥聊得很开心,他说下周会给offer call,我就乖乖的等着
文末
以上部分题目也是自己在复习期间在网上找的一些大厂面试题。我自己也将这些面试题做了解析整理并归纳成了一个文档,由于篇幅原因就没在文章里做展示了。好记性不如烂笔头,永远抱着一个“我应该会”的心态去刷面试题,在自己脑子过了一篇,感觉回答的上来,但往往一真跟面试官对上线就会卡壳,还是建议把每个面试题都去写一遍,再去做延伸。当你能将每一道面试题都能富有逻辑性的写出来的时候,那在面试的时候就绝对没有问题了。
另外需要面试题解析文档的同学可以找我自取:【Android开发交流】
面试题部分
整理不易,如果觉得我的这篇分享对你有所帮助的话,点个赞支持一下吧!另外祝所有正在面试的小伙伴们,都能拿到自己理想的offer!