一面 4.13
- 自我介绍
- 项目:你在项目里的工作?怎么采集的流量?怎么保证线程间的同步?并发太大线程不够怎么解决?线程池线程数量不够怎么办?
- 介绍一下TCP四次挥手机制?为什么最后客户端要等待2MSL的时间才关闭连接?重传机制?
- HTTP和HTTPS的区别?HTTPS的工作过程?
HTTPS=HTTP+SSL/TSL——在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密,需要用HTTP对加密后的数据进行传输;
HTTPS工作过程:
https://blog.csdn.net/seujava_er/article/details/90018326
- HTTP的长连接和短链接?怎么实现的?断开连接是客户端还是服务端发起的?
- 单例模式了解吗?怎么实现单例模式?为什么要用Synchronized和voltile?
- Synchronized和voltile关键字的区别和使用?voltile怎么实现的有序性和可见性?
- 进程间同步的方法?
互斥量、信号量、事件
- 进程间通信的方法?共享内存怎么实现的,如何实现?管道的分类?管道是怎么实现进程间通信的?socket和管道的区别联系?
参考:进程间通信IPC
1.进程间的通信方法:管道、共享内存、信号量、消息队列、信号、套接字
2.共享内存的实现方法:为了在多个进程间交换信息,内核专门留出了一块内存区,可以由需要访问的进程将其映射到自己的私有地址空间。进程就可以直接读写这一块内存而不需要进行数据的拷贝,从而大大提高效率。
3.管道:
- 分类:匿名管道和命名管道
- 管道是怎么实现进程间通信:共享缓冲区
4.socket和管道的区别联系?
联系:两者都可以实现进程通信 区别:1)管道用于实现同一台主机进程中的通信,socket可以跨主机实现进程通信;2)管道只提供半双工通信,socket可以实现全双工通信。
- JVM垃圾回收算法?GC的种类?
- 数据库的隔离级别?已提交读是怎么实现的?MVCC的实现方式(怎么实现读取历史版本的数据)?
- 算法:链表结点去重