2020- 字节跳动,网易,华为,android 开发艺术探索 pdf
字节跳动
一面 46min
简单介绍项目
了解哪些数据结构
了解哪些排序算法
手撕代码:堆排序
Java 集合类:a)LinkedList 与 ArrayList;b)HashMap 扩容 ConcurrentHashMap
TCP 与 UDP,区别及运用场景
http 是用的 TCP 还是 UDP
http 与 https 的区别
JVM 内存模型(Static 方法在哪个区)
Activity 生命周期,Activity 启动模式,Handler 源码
代码题:旋转数组(一面面试官很 nice,答的时候卡壳还会给引导,问的问题、撕的代码都不难)
下午面完当天晚上就接到约二面的通知了
二面 55min(部分问题有重叠的不再列出)
final、finally、finalize 的区别
抽象类的成员变量与成员方法的继承
socket 是否了解,简单聊聊
经典问题:在浏览器输入网址敲回车后经历了什么(这题我感觉我至少说了 10 分钟[捂脸]) a)三次握手;b)https 的加密流程;c)对称加密与非对称加密原理(RSA、AES)
数据库有哪几种隔离机制
union 与 union all 的区别
MySQL 的索引怎么实现的
B+树查找的时间复杂度,数据结构讲一下
设计模式:a) 手撕 DCL 单例;b) 还了解什么设计模式(讲了观察者模式、策略模式)
JVM 的垃圾回收机制,GC Roots 有哪些,说说了解的垃圾回收器
View 的事件分发机制
代码题:两数相加(链表,要求原地实现,空间复杂度 O(1),这个犯蠢撕了好久结果还是靠强行打印发现的问题)
面完后二面面试官希望直接进行三面,可惜似乎三面面试官在开会,所以另约在了两天后
三面 70min (部分问题有重叠的不再列出)
线程与进程
死锁条件,如何排查、解决
虚拟内存、分页机制,讲一讲 LRU
创建对象的方式有哪几种(new 反射 clone 序列化)
序列化与反序列化
反射中的 class.forname()与 class.getclass()二者有什么区别
String.equals(),StringBuffer
类加载的过程讲一下
Java 锁的种类
volatile 关键字的作用、原理
handler.post(Runable()),聊一聊这个
ANR,OOM 了解吗?代码题:a) 螺旋遍历矩阵;b)(变种)原地旋转图像
聊人生聊理想聊爱好
讯飞
![](https://upload-images.jianshu.io/upload_images/24216715-02f183f4945218b2.png?imageMogr2/auto-
orient/strip%7CimageView2/2/w/1240)
相对于网易的面试要简单一些。主要问题偏向于解决他们项目中面临的问题。
1.自我介绍:当然这个还是那些内容嘛。
2.他又问了一些基础的东西。这个我也记不大清了。
3.然后又问了 MVP 架构的东西。
4.然后他开始问一些问题,应该是他们项目中遇到的问题。讲了一个需求“要在手机上显示一个表格,表格可能 100*100,要在这些表格里显示数据,手机屏幕一般只能显示 4 列,这个要怎样做。是使用 View 用 Canvas 绘制上去,还是使用 ViewGroup 添加 View 进去?”。自己给出了使用 RecyclerView 然后自定义 LayoutManager 的方式实现(因为自己这样做过嘛,详情可以看我的把 RecyclerView 撸成马蜂窝)。他听了还是比较满意的。
5.还有一个是手机和平板适配的办法。这个其实很简单嘛。Android 官方有很好的方案。layout-swxxx+Fragment 嘛。然后接着问了 Fragment 使用的具体方法都有哪些。这个也不难嘛。什么 Fragment+FragmentAdapter+ViewPager,或者使用 FragemntManager 来通过 Transaction 来操作 Fragment 等等。
评论