900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 2年Android开发面经分享:跳槽网易个人创业失败后 拿到快手 字节 百度 美团的Offer之旅

2年Android开发面经分享:跳槽网易个人创业失败后 拿到快手 字节 百度 美团的Offer之旅

时间:2019-06-07 20:16:33

相关推荐

2年Android开发面经分享:跳槽网易个人创业失败后 拿到快手 字节 百度 美团的Offer之旅

ConcurrentHashMap的1.7和1.8版本差异

LinkedHashMap实现原理

ArrayDeque实现原理

Java Object中有哪些方法?equals和hashCode方法什么时候会被重写?

Java中悲观锁与乐观锁,举例并说明其相关实现?

CAS实现原理

synchronized和ReentrantLock的实现差异

synchronized对不同方法的修饰,持有的锁对象的差异

ThreadLocal实现原理

volatile用法

说一下对于泛型的理解

泛型擦除

什么情况下不会出现泛型擦除

说一下对于线程安全的理解,Java中线程安全与不安全的集合类有那些?

Java的垃圾回收机制

JVM中内存分配机制

Java类加载机制

平时项目中对于锁的应用

Java线程池默认提供了哪些类型?分别适合什么场景?

Java线程中interrupt()、interrupted()和isInterrupted()分别代表什么意思?

动态代理与静态代理

算法与数据结构篇

对于客户端来说,各大厂基本不会有难度太大的题,难度基本在《剑指Offer》和LeetCode中等难度水平,基本还是都可以做到手写bug free的,对于实现复杂的,面试官也会给予提示或者只是让你讲一些思路就好了,除了百度之外,其它都是需要手写的。因为百度无需手写,考察思路,所以难度上会偏难一些。

二维坐标系中有一些点,找出一点直线覆盖尽可能多的点

链表表示一个数字,求两个数字相加之和,返回一个链表

链表反转

二叉树的最低深度路径打印

无序数组中查找两个和为某一个值的数字,返回索引值

二叉树的后续遍历,非递归实现

字符串中最长不重复子串

背包问题(最大容量与最大价值)

动态规划与递归的差异性,什么问题可以用动态规划,什么问题不可以

排序算法类型与复杂度,有没有更优的优化空间

排序算法复杂度中nlgn中的lgn是怎么来的

堆排序相关,堆排序中的堆与堆栈中堆的差异性

两个字符串,求其最长子串?例如abc1234,123bc(暴力方法的复杂度,动态规划的复杂度)

什么是完全二叉树?

对于算法问题,需要找到最优解,手写达到Bug free的水平,同时对于各种解决方式都能够给出时间复杂度,同时给出时间复杂度的计算过程。

计算机基础

TCP三次握手,四次挥手

DNS解析过程

Http和Https的区别

Https的建立连接过程

什么是死锁?如何产生?如何消除?

TCP拥塞控制与流量控制实现?

弱网下网络请求的处理策略,结合直播场景

了解那些设计模式?

工厂设计模式的优点在于什么?

外观设计模式和策略模式的是如何在项目中应用的?

有使用过那些加密算法?

怎么理解原子性和可见性?

如何保证原子性?

Https中数据传输是对称加密还是非对称加密?

补码表示方式,int最大值加2后等于多少

其它手写设计

LruCache实现

生产者,消费者模型

微信录音模块设计

设计一个日志系统

设计一个图片加载框架,你会如何实现?

手写一个单例实现

设计一个小程序容器,有哪些点需要注意的?

如何设计Web与Native通信的鉴权

HR面与Leader面

HR面

对于HR面基本主要是聊一些过往经历,看一下求职意愿,我觉业务部门决定要人了,HR挂人的概率应该是很小的,然后是聊一下薪资期待,说白了就是围绕其自己的KPI来跟你周旋,价格压低同时保证你有足够的入职意愿。吐槽一下,某公司的HR素质是真的爆炸,问我创业亏了多少钱?女朋友在北京吗?(特码的是准备要包养我?)

Leader面

你期望的工作内容是什么?你觉得你可以给公司带来什么?当然这个不同公司的面试风格差异性还是挺大的,上述面试的公司感觉素质都还是挺高的,给予面试者充分的尊重。这个环节除非是觉得你的工作内容和薪水期望跟他们可以提供的差距较大,一般都是可以通过的。

面试知识点总结

通过上述问题可以看出,对于面试过程除了原有项目的考察,对于知识点的考察上,主要是Android基础知识,Java基础知识,计算机网络,系统设计,算法,结合上述面试题目和自己准备过程中的一些学习记录,下面通过一个脑图的方式进行一个梳理。

以下是自己结合自己的面试整理出来的,当然并没有完全覆盖到所有的Android知识点,大家可以结合自己的日常项目和一些书籍自己在整理汇总。

Android知识

对于Android这块,从打包到安装,再到一个App的启动,到一个页面显示出来内容,再到我们的手指去触摸屏幕对屏幕带来了改变,对这个流程可以跟进相应的源码,顺着这个流程来自己捋一遍,即使不是为了准备面试,作为Android知识的储备对开发工作也是有很好的提速作用的。当把上述流程梳理完成,再考虑对于其中每一个环节的各个击破,对流程的把控对于我们对应用进行系统性的优化也是非常有价值的。

Java知识

Java这块除了对一些基础知识的考察之外,主要是对于Java虚拟机,和多线程场景下对于锁的控制,还有对于其中集合类的一些相关实现和优化的点。流程上是对于一个.java文件如何被编译成.class文件,然后JVM如何去加载这个二进制流并进行执行,内存如何做分配,分配之后,如何为对象分配空间,执行字节码。

算法与数据结构篇

算法这一块建议把《算法》查找与排序读以下,同时跟着《算

法导论》学习一下时间,空间复杂度的计算,常见的题目类型为图上这些,在我之前的博客中有写动态规划一期,包教包会。

系统设计题目

对于系统设计这块,因为之前做过小程序容器和云游戏,所以会被问到,其它应该不会被抓住问的,其它的部分应该是在三轮面试中比较高频会被问到的。

计算机网络

cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8yMjg1NzY1OC0zZWI5NzBkYTIzYzkxOWExLnBuZw?x-oss-process=image/format,png)

对于系统设计这块,因为之前做过小程序容器和云游戏,所以会被问到,其它应该不会被抓住问的,其它的部分应该是在三轮面试中比较高频会被问到的。

计算机网络

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。