写点什么

疫情被裁 3 个月,看我如何拿下腾讯 offer(附面经 + 面试心得

用户头像
Android架构
关注
发布于: 5 小时前

最终结果却是因为另外一位面试者期望薪资比我低,就把我刷掉了。 坑爹啊

同洲电子

四轮技术面


  • Activity 的启动流程

  • 静态类的静态方法能不能被子类重写(不能,走的 invoke-static 指令,只有走 invoke-virtual 指令的才可能实现多态)

  • Linux 的启动


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


流程


  • 对 Native 层有没有兴趣

  • 对做智能家居有没有兴趣

  • 招一个应届生进来做 app 也是做,招你也是做,为什么要招你

顺丰科技

一轮技术面 总共三轮面试


  • handler 机制

  • looper 的唤醒是在 Java 还是 Native 层,怎么做到的

  • HashMap,ConcurrentHashMap,HashTable 有什么异同

  • Binder 通信机制

  • 跨平台开发熟不熟悉

  • 如何提高海外用户的访问速度,假设服务器在深圳。

  • 如何学习一个新东西,有哪些执行步骤

百度

  • 红包随机算法 是怎么做到的

  • 写一个二叉树的深度度优先遍历,递归 非递归

  • Android 中 LocalServerSocket 是干什么用的

  • binder 的 Native 层代码看过吗

  • Linux 有哪些 RPC 机制

  • 为什么 android 使用了 Binder 机制没采用共享内存

  • 如果让你设计一套进程间通信的机制,你会怎么设计

  • Linux 的模块动态加载机制是怎么实现的

  • 一个物理屏划分为三个逻辑屏,是靠谁来分发事件的。

  • ConcurrentHashMap 是不是绝对的线程安全。(final,绝对线程安全,相对线程安全,线程不安全)

  • 线程池是如何管理线程状态的

大宇无限(C 轮公司 前身是豌豆荚)

是我第二心仪的一家公司,办公环境,氛围,福利都好的一逼,可惜了


  • Kotlin 的访问权限

  • Koltin 为什么比 Java 更安全

  • Koltin 比 Java 好在哪

  • JVM 的内存模型

  • JMM 的内存模型

  • 为什么操作数栈是 Thread-Private

  • 计算二叉树的深度

  • ArrayList 跟 LinkeList 区别

  • ArrayList 如何扩容的,如何提高 ArrayList 的效率

  • 动态代理静态代理区别

  • 启动优化怎么做的。

  • 如果给你个 IOS APP,你打算怎么优化。

  • http 有哪几种版本,版本间有什么区别。https 跟 http 有什么区别。

  • apk 为什么要签名,v1 跟 v2 签名的区别

  • apk 从编译打包都安装的流程

  • dex 到 odex 为什么不能在编译期优化

  • 热修复原理

  • 你的优势是什么

平安

三轮面试


  • http2.0 1.1 1.0 的区别

  • http 如何保证安全性

  • 安装包优化有哪几种方式

  • 启动优化有哪几种方式

  • View 的绘制流程,每个方法干什么的,如果要获取 View 的宽高,在哪个方法里获取

  • 如何应对弱网环境

  • android 数据存储方式

  • 如果一个 app 无法访问网络,你怎么做数据存储。

  • DVM 跟 JVM 的区别

  • React Native 跟原生开发的优劣

腾讯

三轮面试


一面:


  • 算法题 通电小球

  • Android 沉浸式状态栏 怎么实现的

  • 事件处理函数有哪几个,父 View 子 View 监听同一个事件,重写哪些方法。在哪个 View 重写?

  • ViewRootImpl 接受事件吗?

  • apk 编译打包流程 V1,V2 签名区别

  • 利用 logging 监听方法耗时,会不会让 app 增大延迟。

  • eventbus 为什么要用 CopyOnWriteList?

  • 插件化怎么加载资源的?

  • JVM 怎么保证 gc 效率跟线程运行效率的 ?

  • 如果 android 没用对应的 view,flutter 能运行吗?手写单例模式,volatile 跟 synchronized 区别?

  • 接口暴露,但是不让别人调用,有哪些办法?


二面:


  • 为什么采用 flatbuffer? 比 Json 好在哪里?

  • 如何处理 Crash,NativeCrash 呢?Google 是怎么做到的?如果上报过程中再次产生 Crash 能不能捕捉到?

  • uncaughtException 是被谁调用的,如果再次崩溃能不能捕获到?

  • Linux 是怎么知道 app 崩溃的,如果想要在被 kill 前 做一些耗时操作,该怎么做?

  • 考虑设计一个 crash 捕捉模块。

  • 100 万个数字求 100 个最大值。

  • 手写快速排序算法。


三面 (GM 面):


  • kotlin 比 Java 好在哪里,是函数式编程吗?

  • 如何防止 DNS 劫持?

  • 如果让你实现一个调试器,你会怎么设计?静态调试?动态调试呢?

面试及学习心得

面试心得


一、跳槽换工作要先多面试一些小公司,建议各位面试的时候不要上来就直奔 BAT 等,大厂面试官的技术广度与深度也不是几年没面试的你,能搞定的。最好先去一些小公司看看他们问的哪些东西,自己回去再查漏补缺一下,最后去大厂。


二、面试的时候一定要控制好心态,一个好的心态往往更容易拿到 offer。就像我有次面试,因为心态没控制好,才面了 30 分钟不到就结束了,所以如果面试前你心态没控制好,宁可不去,也别抱着一个糟糕的心态去面试。


三、在面试这家公司前,一定要在网上找一下这家公司近几年的面试题,了解一下这家公司的面试官比较喜欢问一下什么。


学习心得


一、多看一些实战项目视频和书籍




二、多刷一些算法题


因为一些大厂还是十分看重算法方面的,这里推荐大家刷**《剑指 offer》**这本书。


大约 80%的算法题都来自这儿,刷就完事了。但是,千万不能无脑刷。


1. 刷前思考算法!


不要看到题目就手痒,二话不说 public void main。


面试官也不喜欢莽莽撞撞的学员,最好的做法是,看好题目,思考该用的算法模型,然后清晰地跟面试官说出自己的思路和解法,得到面试官的认可之后再继续写。


2. 刷时牢记规范!


清晰的书写、布局,合理的命名。这些微不足道的习惯可能会成为一票否决的因素。培养良好的编程习惯在每一次代码中都需要去落地。


3. 刷后总结优化!


千万别 AC 后就大喊万岁跑路走人了。AC 只能说明结果正确,但手撕代码的过程中你的代码可是赤裸裸地暴露在面试官的眼里,身材是好是坏一眼就看出来了。请一定要对比官方标准答案,思考最优解法,时间、空间复杂度。


三、多看一些面经


看面经能让你了解这个公司面试的一些情况,面试官喜欢问的问题,特别是近期的面经。


最后

我已经顺利拿到了 offer,大家也要加油,希望都能找到自己想要的工作!


也希望我的一些面试心得和学习心得,可以为大家提供一些帮助,能让大家早拿 offer!


如果大家需要上面图片中的视频和学习资料的可以私信我【资料】或者【点这里】免费领取!


如果大家喜欢这篇文章的话请点赞、关注、转发 谢谢!

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
疫情被裁3个月,看我如何拿下腾讯offer(附面经+面试心得