前言
这里是双非本科毕业一年的 Android 开发渣渣,坐标深圳.
我社招的状态是退职精投,除了富途,还投了腾讯和字节,其中腾讯音乐的 QQ 音乐部门捞了我,然而很惋惜,倒在了二面。
感觉一年教训的社招和校招差不多,四轮都是视频面试,面试官都很准时,而且人都很好,在答复卡住的时候会给与提醒,在反诘环节我也看出了面试官的思路是十分清晰的,总的来说整个面试过程十分 nice。
以下是我给大家分享这么多场面试的一个经验总结。
面试经验
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 根底、编程题要留神标准和思路是否最优。
面试倡议
1. 有急躁且被动
面试不要焦急着去问后果,个别在 hr 面的时候,他的态度多少可能猜个七七八八的,如果等上一周还没有告诉,那就能够被动去问了。
2. 刷题是为了晋升本人的运气
运气在面试过程中是十分重要的,刷题的目标很简略,除了坚固咱们所把握的,另一个就是为了能进步在面试中咱们的运气,如果可能问到一样的题是再好不过了,当然这个方法是实用于职级中低岗位。
3. 把握根底,留神深度
大厂面试最喜爱问两类问题,一类是根底,另一类就是深度。根底局部,无非就是咱们所把握的技术根底内容,基本上只有是有筹备的都没有太大的问题。另一部分就是深度问题,大多波及到本人之前的工作、我的项目,面试官所问的问题不仅仅是停留在外表那么简略,背地的原理是什么才是面试官想要问的。
4. 刷面试题
以上局部题目也是本人在温习期间在网上找的一些大厂面试题。我本人也将这些面试题做了解析整顿并演绎成了一个文档。
最初
好忘性不如烂笔头,永远抱着一个“我应该会”的心态去刷面试题,在本人脑子过了一篇,感觉答复的上来,但往往一真跟面试官对上线就会卡壳,还是倡议把每个面试题都去写一遍,再去做延长。当你能将每一道面试题都能富裕逻辑性的写进去的时候,那在面试的时候就相对没有问题了。
因为文章篇幅无限,文档资料内容较多,本能够提供链接下载,但无奈容易被谐和,所以全副存档,须要这些文档这里的敌人,能够点击我的【Gitee】,心愿可能共同进步,共勉!