西山居一面
只记录了部分问题,不是全部
1、项目里websocket报文为什么要用json格式
我:json格式可扩展性强,如果要增加删除某些key-value很方便。如果用二进制格式,得规定一个协议,例如某些字节位存储什么信息,然后按协议解析
面试官:有没有在json和二进制之间取得平衡的方案?
我:二进制报文协议,预留一部分空间以作之后的扩展使用
面试官:如果有信息超过了预留的大小,协议会被破坏
然后我就不会了,反问了面试官
面试官:websocket json格式报文可以通过插件,转化成二进制格式压缩传输
2、redis
3、用Java实现redis的数据结构,怎么实现
这里挺坑的,都得用线程安全的集合类
4、ConcurrentHashMap如何实现线程安全
5、如何进一步优化ConcurrentHashMap
我说的是synchronized用reentrantLock替换,毕竟在竞争不激烈的情况下,后者性能比前者好
但是不太对,这个问题得再想想