字节产研后端一面(已通过)
- 堆内存和栈内存的区别,性能上的区别
- 栈一般是多大?(记不住。。)
- 如何指定栈内存?(没问具体命令,也可能是我没说出来,我记不住。。)
- 栈是否可以无限大?
- 进程和线程的区别
- 进程中通信的方式
- 什么是消息队列?
- 消息队列为什么会有大小限制?(这个是我自己上面提到的,我恨呢。磨了好久,真不知道,并发)
- 加入一个消息队列的目的?
- 有没有了解消息队列的组件?(之后又回到为什么要有大小限制)
- 分布式系统的了解(前面说消息队列提到了分布式,又自己给挖坑了属于是,说成了微服务)
- 常见的分布式系统(麻了,就是说我分布式和微服务搞混了)
- 上下文切换的理解
- 上下文切换的内容(分进程和线程说的,进程的真不会,乱蒙了一通)
- 什么情况下会触发上下文切换?(说了线程的,然后让我说进程内,我又蒙了一通)
- 打开一个文件涉及到的上下文切换?(不会,继续蒙,说了IO,问我为什么要等待IO的完成?为什么不是自己执行这个IO,而是要等待,最后直接说不会了,顶不住了)
- 用户态和内核态
- 为什么要有用户态和内核态?(说了安全性)
- 用户态确实要操作内核态,会不会对性能造成影响,有没有知道一些技术可以对其进行优化?(完全不会,人都傻了,说了多核CPU,面试官说不算哈哈哈)
- 看下当前目录文件用什么命令?
- 查看进程的pid?(java进程的pid,所有进程的pid,说了ps,但是问到具体参数,不会了)
- 通过端口号查进程ID
- 查进程已经和TCP做了哪些连接,怎么查?(说了有个net开头的命令,具体的记不住,我记得面试前我特意去查这个命令来着,查到一半我去干别的了,我恨呢)
- 内存占用率,CPU负载怎么查?(说了一般是通过腾讯云或阿里云的可视化界面查,然后追问命令,不会)
- 打开一个网站涉及到的网络协议?(说的有点乱,每一层的协议都大概说了下,MTU和MAC傻傻分不清)
- DNS的端口,底层协议
- TCP的四次挥手(说我有个状态搞混了,说成了CLOSE_WAIT,最后说要么是CLOSE_WAIT要么是TIME_WAIT,然后最后一个发送ACK的是客户端,一直问我确定吗?最后那个等待2MSL掰扯了好久,感觉一直没表达好)
- mysql的事务隔离级别
- 常用的存储引擎
- MyISAM和InnoDB的区别
- count(*)命令哪个存储引擎更快?(人傻了,蒙了一通)
- 两个存储引擎锁的区别
- 行锁的类型(没答上来,但是后面问我锁是怎么加的?开始引导我了,说了加行数后允许其它事务读和不允许其它事务读)
- 什么是一个哈希表?
- 平常开发中有写过一些锁?(说了synchronized的原理,没说完不让我说了,东西有点多,说的也挺乱的)
- 为什么要加锁?
- 算法题:矩阵从左上方到右下方经过的最大距离(入门动态规划题,忘记二维数组怎么在创建的时候赋值了,尴尬死我了,还好算法秒做出来了,拿到题之后10s后说了思路,7分钟做出来了,然后给面试官讲了下)
第一次面试,感觉问的问题好多。。开始因为部门用的是go,以为不太会问java的东西(想多了呜呜),面试前真的贼紧张,真正面试开始了其实还好。然后本来是准备在项目的时候好好说说,然后项目一点没问(难顶。。),希望二面可以问项目。 (刚面试完就去联系了HR,不到10分钟HR就通知过了,,感人,然后直接约了第二天二面,后悔没给自己留准备时间了。。)