一位双非本科拿到了头条,小米,京东的offer

5,629 阅读4分钟
原文链接: www.jianshu.com
感恩.jpg
  • 谢谢那些曾经帮助过我的人。

很多忘记了,能回忆起来的就尽量写多一些。


小米

一面(电话)

Android:

1.内存泄漏的场景,Handler机制
2.四大组件
3.进程间通信
4.自定义view
5.Binder的使用
6.性能优化

Java:

1.接口和抽象类区别
2.继承和重写
3.ArrayList和LinkedList区别
4.死锁产生条件和应用场景
5.Java的修饰符的使用,static final修饰原理
6.多线程空指针解决方法
7.异常处理流程,何时必须要catch

操作系统

1.进程和线程区别
2.多线程同步和异步问题
3.同步死锁应用场景

设计模式

1.代理模式
2.单例模式以及双重锁原理
3.观察者模式应用场景

数据结构和算法

1.无序数组建立二叉搜索树 2.前序和中序遍历二叉树(我写了递归和非递归)

二面(电话)

1.四大引用区别和引用场景
2.内存泄漏的场景,Handler内存泄漏的原因以及解决方法
3.Handler机制,主线程如何向子线程发送消息,Handler能否多进程通信
4.多线程并发,sychronized,类锁和对象锁
5.线程安全类,StringBuffer和StringBuilder
6.jvm工作内存和主内存,volatile原理,jvm的静态块,内存屏障的实现原理
7.一个m*n的棋盘,一个虫子从左上走到右下方,只能向右或者向下,有多少种走法,可以用组合数学的知识解答
8.静态广播和动态广播区别,service启动的两种方式区别

三面(视频)

1.将知道的操作系统说一遍,引入操作系统的最终目的(计算的功能),进线程区别,虚拟地址的原理和作用,指针是物理地址还是虚拟地址,指针的地址长度的影响因素,32位系统是4个字节,64位系统是8个字节。
2.Java的三大特性,写一个多态的例子,注意命名的规范
3.一个很大的数组,其中有一个数出现的次数是奇数次,其他都是偶数次。求这个数。除了异或写另外一种方法

四面(视频)

1.Android的体系架构,深入到framework,native层
2.单例模式的几种实现具体的区别,工厂模式的种类以及区别
3.对C语言的理解
4.Android的触摸事件分发流程
5.Android第三方框架的源码实现原理

京东

京东的面试题感觉都差不多,难度一般。 印象深刻的如何:

一面(电话)

1.对着我的项目问了一些具体实现的问题
2.一些基础的问题就不想再重复了,比如ArrayList和LinkedList区别
3.最后一道简单的算法题作为结束:求两个字符串的最长公共子串

二面(电话)

1.也是跟一面差不多Java和Android,比如Activity的启动模式,类加载的过程
2.设计模式
2.Activity的启动流程,这个有点意思

今日头条

很多真的忘记了,只记得下面这些了。

一面(视频)

1.讲一下项目,主要是深入框架的源码
2.Java忘记问啥了,Android问启动模式的时候,对四种启动模式的实际运用问得比较深,还有触摸事件的细节问得深
3.sp的commit和apply区别
4.左连接和右连接区别
5.算法:输出二叉树每层的最大值

二面(牛客网视频)

1.集合类,线程安全如何实现,写一个算法ArrayList删除所有值是50的。
这里有坑:blog.csdn.net/lazy_p/arti…
除了遍历还有更优的方法吗?想不出来。换成LinkedList性能如何?
2.异常类的继承结构,如何捕捉异常,如何全局捕捉异常并上报
3.数据的存储方式与其的应用场景,ContentProvider的底层实现,如何保证多进程读写安全
4.类加载,jvm内存模型
5.自旋锁
6.Linux的fork
7.数据库的ACID
8.手写反转链表

三面(视频)

1.intent是什么来的?为什么不是动作,用来干什么的?
(什么向什么表现什么意图)
2.为什么设置tcp三次握手,四次挥手
3.hashmap的底层实现
4.场景题分析:手机扫网页端的二维码如何提起的登录的过程,是如何实现的?