首页 > 字节一面
头像
牛客948365104号
发布于 昨天 15:16 广东
+ 关注

字节一面

1、讲一下tcp的三次握手和四次挥手,可以四次握手吗?可以三次挥手吗?

tcp三次握手:客户端发送SYN报文到服务端;服务端接受到客户端指令后,发送ACK + SYN报文到客户端;客户接受到服务端

指令后,发送ACK报文给服务端。可以四次握手,但是三次握手更简便,将ACK报文和SYN报文发送。

tcp四次握手:客户端发送FIN报文到服务端;服务端接受到客户端FIN报文后,发送ACK报文到客户端;过了一段时间,服务端

再次发送FIN报文到客户端;客户接受到服务端指令后,发送ACK报文给服务端。不可以三次挥手,因为服务端第一次发送ACK

报文后,可能还有数据处理和发送,等服务端不在处理和发送消息,才发送FIN报文给客户端。

2、hashmap可以用哪些基础数据结构去实现,具体操作过程?

数组 + 链表

先将key通过哈希算法算出在数组的位置,如果位置为空直接加入,如果不为空,判断值是否相等,相等则覆盖,不相等则遍历后面的链表,不存在则添加。

3、讲一下jvm的内存回收机制?

当内存不足自动触发垃圾回收,首先通过可达性分析算法判断哪些方法可以被回收,从根对象出发,如果发现没有被引用,则可以被回收。具体的回收算法有复制算法、标记-清楚算法、标记整理算法,其中复制算法占用内存,标记清楚算法容易造成内存碎片。常用的回收器有serial,serial old,parnow,cms、G1,其中serial和parnow主要针对于新生代、采用复制算法,serial old针对老年代、采用标记整理算法,cms主要针对于老年代、采用标记清楚算法,G1采用分代回收、针对新生代和老年代。

4、讲一下mysql的回收引擎和各自的优缺点

inodb:支持事务、行锁

memory:

myiasm:

5、实习拷打

7、算法题

8、设计一个用户投票系统,其中怎么限制每个用户投一票?

采用redis的zset数据机构,其中key为候选者id,zsore为得票数;

对于限制每个用户投一票,可以在前端进行控制,或者使用mysql记录用户操作次数。

全部评论

(3) 回帖
加载中...
话题 回帖

近期热帖

热门推荐