时长:1小时10分钟
自我介绍
手撕算法:模拟计算器,输入算数表达式字符串,返回计算结果。
1、ConcurrentHashMap底层实现?
2、BIO、NIO、AIO三者之间的区别?
3、epoll是怎么实现IO多路复用的?
4、知道用户态和内核态的区别吗?为什么要分为两种,NIO为什么比BIO性能好,结合上面两种态来回答?IO操作在操作系统底层是怎样的?(中断、DMA、用户态到内核态的切换,系统调用等...)
5、进程和线程区别?
6、进程通信方式?
7、MQTT优势,为什么物联网普遍采用该协议?(轻量级、QoS消息保证可靠、异步、跨平台、安全...)
8、项目中的MQTT怎么实现的?Netty在其中的作用?
9、rocketmq内部组件有什么?
10、rocketmq保证消费有序,消费者组是如何保证有序消费的,以及不重复消费?(结合分区来回答)
11、rocketmq如何提高吞吐量,例如生产者生产很多消息,消费者组这边要如何消费去平衡消息的堆积,并发消费问题等?
12、tcp和udp区别?
13、http的报文有哪些字段,包括请求报文和响应报文。
14、http请求方式知道哪些?(get、post这些,有什么不同)
15、osi七层模型和tcp/ip模型的区别?
16、如何选择上面这两个模型?
17、osi七层模型有哪些,分别对应tcp/ip模型的哪些层?
18、DNS在哪一层?
19、浏览器输入URL请求时,结合上面的两个模型,到网络层直接,会有哪些协议?(知道多少说多少)
20、docker文件系统了解吗?
面试官很耐心,告诉我下来可以再多看看计网、MQ这些基础,告诉我答得不好的点等等