京东社招Java面经分享

1、手撕代码。牛客题霸上的原题,可以去看看:NC3 链表中环的入口节点

2、GetPost区别

1Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。

2Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。

(3)Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。

(4)Get执行效率却比Post方法好。Getform提交的默认方法。

GET产生一个TCP数据包;POST产生两个TCP数据包。(非必然,客户端可灵活决定)


3、死锁的4个必要条件

1)互斥条件:一个资源每次只能被一个线程使用;

2)请求与保持条件:一个线程因请求资源而阻塞时,对已获得的资源保持不放;

3)不剥夺条件:进程已经获得的资源,在未使用完之前,不能强行剥夺;

4)循环等待条件:若干线程之间形成一种头尾相接的循环等待资源关系。

4、Leader选举算法和流程

FastLeaderElection(默认提供的选举算法): 目前有5台服务器,每台服务器均没有数据,它们的编号分别是1,2,3,4,5,按编号依次启动,它们的选择举过程如下:

(1)服务器1启动,给自己投票,然后发投票信息,由于其它机器还没有启动所以它收不到反馈信息,服务器1的状态一直属于Looking

(2)服务器2启动,给自己投票,同时与之前启动的服务器1交换结果,由于服务器2的编号大所以服务器2胜出,但此时投票数没有大于半数,所以两个服务器的状态依然是LOOKING

(3)服务器3启动,给自己投票,同时与之前启动的服务器1,2交换信息,由于服务器3的编号最大所以服务器3胜出,此时投票数正好大于半数,所以服务器3成为leader,服务器1,2成为follower

(4)服务器4启动,给自己投票,同时与之前启动的服务器1,2,3交换信息,尽管服务器4的编号大,但之前服务器3已经胜出,所以服务器4只能成为follower (5)服务器5启动,后面的逻辑同服务器4成为follower


#社招##京东##Java工程师##面经#
全部评论

相关推荐

1 19 评论
分享
牛客网
牛客企业服务