西山居一面

只记录了部分问题,不是全部

1、项目里websocket报文为什么要用json格式

我:json格式可扩展性强,如果要增加删除某些key-value很方便。如果用二进制格式,得规定一个协议,例如某些字节位存储什么信息,然后按协议解析

面试官:有没有在json和二进制之间取得平衡的方案?

我:二进制报文协议,预留一部分空间以作之后的扩展使用

面试官:如果有信息超过了预留的大小,协议会被破坏

然后我就不会了,反问了面试官

面试官:websocket json格式报文可以通过插件,转化成二进制格式压缩传输

2、redis

3、用Java实现redis的数据结构,怎么实现

这里挺坑的,都得用线程安全的集合类

4、ConcurrentHashMap如何实现线程安全

5、如何进一步优化ConcurrentHashMap

我说的是synchronized用reentrantLock替换,毕竟在竞争不激烈的情况下,后者性能比前者好

但是不太对,这个问题得再想想

6、为什么ConcurrentHashMap对哈希桶的头结点进行加锁用的是synchronized而不是ReentrantLock

全部评论
有手撕吗
点赞 回复 分享
发布于 2023-03-17 10:48 广东
蹲一个5结果,1.8怎么继续优化?
点赞 回复 分享
发布于 2023-03-17 17:45 河北
6有答案吗
点赞 回复 分享
发布于 2023-03-17 23:11 河南

相关推荐

9 24 评论
分享
牛客网
牛客企业服务