抖音国际化直播后端一面凉经
base:北京
时长:65min
1. 平时一般用JDK几,不同版本的区别?
答:JDK1.8,区别答了1.8新增接口默认方法、1.6到1.8中字符串常量池的转变以及JVM元空间等。
2. JVM堆中有哪些内容?
答:创建的对象,方法区本质也在堆中。
3. 方法区存放在哪?
答:1.8以前是永久代实现,具体实现是在堆中,1.8后在本地内存中。
4. 哪些内容不在堆中?
答:方法的局部变量和创建对象的引用是在栈中,PC寄存器,本地方法区。
5. 什么情况会引起OOM?
答:没有举具体的例子,举了递归调用创建对象的方法(面试官想让我举平时遇到的例子)。
6. 进程和线程的区别?
答:进程是获取资源的基本单位,线程是调度的基本单位等等。(应该是最小单位,基本单位都是进程)
7. 为什么线程是操作系统调度的基本单位?
答:不太清楚,答了线程的生命周期和线程调度方法。
8. 进程是用来做什么的?
答:不太清楚面试官的意思,答了获取资源的基本单位,猜了方便管理和权限。
9. 问有没有听说过一些语言的协程?
答:(携程)???
10. 对网络有没有一些深入的了解?
答:回答了一些OSI分层和协议。
11. HTTP和HTTPS的区别?
答:多了SSL协议,明文变加密,更加安全,端口号不同。
12. 端口号是固定的吗?
答:可以变,举了MySQL 8080端口被占用时切换端口的例子。
13. 两个不同的套接字能不能监听同一端口?
答:不太清楚套接字。
14. 用什么数据库?
答:MySQL。
15. 说一说索引?
答:回答了innodb的聚簇索引,B+树等。
16. 考了一题敲sql
两个字段
Id num
1 num1
2 num2
2 num3
写出不同id的个数?
答:select distinct count(id)from table(不太确定想到啥写啥),实际是 select count(distinct id)from table
17. 算法题:LeetCode-695.岛屿的最大面积M*N
答:建立二维数组,用图的深度遍历,写完算法debug时问我思路和时间复杂度,我说O(mn)
18. 算法题:删除倒数第N个链表节点
答:换了一题简单题很快就写出来了。