网易互娱java后台开发一面面经(估计凉了)
我觉得这一场面试好难。。我技术了解的太浅了,底层实现知道的太少了
1、自我介绍,问了一下以前做的深度学习的项目,为什么选择这个算法,我随便扯了一下(大二上做的,记得的不多。。)
2、问实习,我实习了解了一下rabbitMQ(就真的只是了解了一下),问我这个数据流情况,为什么要有交换机,就不能直接放到队列里吗,或者弄多个队列
在我提到我了解的不多之后,他让我不要局限于rabbitMQ,说队列这个是共通的,然后就开始了:
如果放到队列里的数据传输失败了会发生什么,
如果里面放的是很重要的数据,比如金额,整个传输流程是怎样的,要注意什么(我说mq一般是默认确认的,但像这种情况要自己写回复确认),
确认失败会怎么样,(我不知道,就随便扯了可能会像tcp的重传机制那样)
如果传的是jason数据,然后客户端那里解析失败没有返回确认,然后这边一直重传会怎么样(我随便扯了前后端交互的状态码,可能会标识是谁出了问题……)
总的来说这个问题几乎就是在问我要如何设计一个这样的消息队列,但我实在是这方面了解不多,所以基本都是随便扯,主要靠想象。。
3、了解socket通信吗,我不是很了解,然后问我spring这边经历了select语句,整个操作系统、网络会发生什么,数据是怎么到另一台机器上的(我不知道操作系统会怎样啊啊啊,然后扯了一下socket和http之类的,就是标识进程balabala
4、tcp的重传机制具体情况,然后滑动窗口和拥塞控制,以及两者的区别(总算有一个我会的了,但他又问了除了冗余确认有没有其他机制来重传,我不晓得。。)
5、有没有在linux上编程过?我没有。。程序有没有部署到linux上,我在实习的时候有部署过一次,但时间太赶了其实我没怎么做好,他问我具体命令,有没有把日志放到上面输出。。
6、文件描述符了解吗(不了解)
7、io复用了解吗,我说了一下NIO和AIO,然后他问我整个流程和机制是怎样的,它们在等待什么(我发现我只知道关键词!具体是为了解决什么问题之类的只记得看过。。)
8、mysql的引擎里有哪些锁,事务隔离级别,是通过什么机制实现可重复读的(了解的还是太浅了)
9、mysql的索引的数据结构,我说b+树,然后b+树的特点,然后他如果要添加很多数据,b+树什么时候会分离,反正就是问从mysql的数据存储这一块去思考索引、优化之类的,还有每一个叶子节点放多少数据是比较合适的之类的。
10、算法题:
一个字符串s eg:ababbcbba
一个数字 k eg:2
求s中最长的字串,且这个字串里的每一个字母出现的次数都要大于k 所以例子中答案应该是:ababb
时长太短了,讲了一下思路,面试官觉得那个思路也行吧。。
感想:两个面试官,其实氛围是可以的,他们也是友好的,只是我太菜了,知识了解的太浅,很多东西都是知道有这么一个,它的特点是什么,但它为什么要这么设计,具体是怎么完成工作这些东西就基本完全答不上,我觉得我大概能确定他们要的是怎样的人,但可惜我不是呜呜。
#网易互娱面试##面经##网易互娱##java工程师#