一面
1.1 面试体验
- 时间:2020-08-08-14:00 ~ 15:30
- 面试官和我一样喜欢笑,问问题循序渐进,代码有问题还认真引导💖💖💖💖💖
1.2 问题
- 进程与线程的联系和区别
- 进程间通信方式介绍
- 操作系统几大特征知道不?虚拟内存是怎么回事?
- 段页式内存管理?
- 虚拟地址映射是怎么回事?
- 操作系统缺页算法(OPT、FIFO、LRU、二次机会)?操作系统真正实现的是什么呢?(时钟)
- 操作系统分内核态和用户态解释一下,为什么分内核态和用户态?
- 一个线程调用start()函数一定会直接运行吗?(聊聊线程状态、start()和run()函数)
- volatile关键字解释一下怎么回事,用途?(结合内存访问模型谈谈可见性,结合双重校验单例模式聊聊禁止指令重排)
- volatile关键字禁止指令重排怎么实现的呢?(内存屏障)
- TCP那一套知识点
- TCP拥塞控制怎么做的
- 中间人攻击知道吗,聊一聊?(举例:ARP、HTTPs、SSH)
- HashMap底层数据结构是什么?
- 加分项:SSL/TLS3.0 和 2.0相比有一个前向安全你知道吗?
1.3 代码实操
用HashMap实现一个LRU缓存
二面
2.1 面试体验
- 时间 2020-08-08-15:43 ~ 16:45
- 面试官人也蛮nice的,就是自己比较菜(看得出来你代码写的比较少😅)💖💖💖💖
2.2 问题
- 聊聊HyperLedger的架构是怎么样的?
- 为什么联盟链需要一个类似中心实体的存在?
- HTTP了解吧,说说你知道的?(GET,POST)
- 有抓包看过GET、POST请求报文是怎么样的吗?说一说他们的结构
- 在请求报文中的请求头部中包含什么字段?
- GET和POST的区别,知道多少?
- HTTP缓存讲一下?
2.3 代码实操
高精度加减法
string “3456” means 3456 给定 String a,String b 不考虑异常数据输入 a/b只包含0-9的数字,且不含leading-zero
补全
public StringAdd(String a, String b)
public String Minus(String a, String b)
三面
3.1 面试体验
- 时间 2020-08-19-20:30 ~ 21:20
- 面试官人也蛮nice的,谈天说地,滔滔不绝💖💖💖💖💖
3.2 问题
聊的比较愉快忘记问了什么了😂
- 面试官介绍他们业务和工作
- 问项目
- 问实习
- 如何防止apk二次打包(签名,代码混淆)
- 代码混淆,替换变量名还是容易被反编译,怎么办?(母鸡)
- 内存泄露怎么办,怎么避免(撤了Java ThreadLocal, 然后弱引用)
- 操作系统如何防止内存数据被非法访问(扯了一点段页式,然后母鸡)
- 二进制文件定位一些敏感数据(如字符串,泄露信息),怎么解决?(扯了点密码硬编码解决方案)
- 项目提到了TopK排序,问了怎么做(快速排序,堆排序)
- 快排怎么做的,时间复杂度,为什么基本有序就是 O ( n 2 ) O(n^2) O(n2)呢?
HR面
4.1 面试体验
- 时间 2020-08-21-18:00 ~ 19:00
- 快手的面试体验都不错,中途面试官的电脑没电了,去拿了电源🤷♂️
4.2 问题
- 前面几个面试官怎么样,如果让你选一个做导师你选谁?why?
- 你的几个项目选一个给我分享一下
- 目前面试的公司
- 如果A和我们同时给你发offer,你如何选择
- 期望薪资