乐趣区

关于android:BATZ大厂面经总结已获30koffer究竟是寒冬裁员还是逆境升薪

前言

这里是双非本科毕业一年的 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】,心愿可能共同进步,共勉!

退出移动版