这里有一份面筋请查收(六)

简介: 已经写到第六篇了,本文说的这家公司是博主投的最随意的,属于手滑点赞的那种。这里简称为V,最后也是选择了这家。博主会把简历挂在猎聘网上让猎头来找,然后把自己的简历给猎头,有心思的猎头还会修改一下简历。

已经写到第六篇了,本文说的这家公司是博主投的最随意的,属于手滑点赞的那种。这里简称为V,最后也是选择了这家。博主会把简历挂在猎聘网上让猎头来找,然后把自己的简历给猎头,有心思的猎头还会修改一下简历。至于在猎聘网上填写的简历有很多条条框框,一般看到一家比较感兴趣的也会去拉勾网上搜一下,然后在拉勾网上头,拉勾网在这点上做的不错。当时看到公司V觉得也是一家知名企业,就点了发送简历,忘了去拉勾上搜一下了,而且职位介绍也没注意。后来面试的时候面试官解释了一下这个职位,感觉很有吸引力。当时二面和三面之间W公司发来一个offer,差不多就拒掉了。置之死地而后生,不然没动力继续面试的。

一面也是电面,因为不在一个城市。之后的二三四面都是去公司面的。

一面

当天和面试官约好晚上19:30面试的,果然也是准时的,整个面试过程持续了45mins左右。面试官人很好,问的问题比较细腻。问的大多是网络的问题,博主写过通讯程序,但是对计算机网络没有很深的了解,最近面试也没准备过网络相关的知识,只是看了下Java相关的,对于计算机网络只能靠回忆啦。
1.TCP/IP协议相关的
TCP的三次握手是什么?为什么要三次握手?不是三次可不可以?
TCP的关闭连接有哪些动作?(四次挥手)?TCP和UDP的区别?端口号位于几层协议?
以上这些TCP/IP有一定了解的人一般都能回答。
之后问了一个问题,在四次挥手的过程中有两个状态TIME_WAIT和CLOSE_WAIT之间会发生一些异常情况,你知道是什么么?有知道答案的小伙伴请在下方告知。
TCP的流量控制怎么解决?(滑动窗口)
TCP的拥塞控制怎么解决?(这个没答上来,之后翻看了下资料,还是有点复杂的。涉及慢开始和拥塞避免,快重传和快恢复。)
2.Keepalived基于几层协议?LVS基于几层协议?
简历上写了这个所以被问也是很正常。
答案:Keepalived工作在3,4,7层上。第三层:Keepalived会定期向服务器集群中的服务器发送一个ICMP的数据包,如果发现某台服务器的IP地址没有激活,Keepalived便报告这台服务器失效。并将它从服务器集群中提出。第四层:主要以TCP端口的状态来决定服务器工作正常与否。第7层:根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived将把服务器从服务器群中剔除。LVS(LVS-TUN, LVS-NAT)工作在4层协议上,但是也有人说LVS-DR是基于物理链路层的,所以也是可以理解的。
3.聊聊NIO以及React模式详解。
关于NIO网上有很多资料,可以自行查阅,也可以看一下这一篇《攻破JAVA NIO技术壁垒》。
之后好像问了个问题:NIO的Reactor模式和设计模式中的观察者模式有什么区别?观察者是基于单事件源的,而Reactor模式是基于多事件源的。
4.客户端连接服务器,绑定了错误的IP地址和端口号会有什么现象?
这个博主再写IO程序的时候还真没有注意过,只蒙了一个Connection refuse的答案。细节决定成败啊。后来通过程序BIO和NIO两种方式分别试了一下。NIO的方式在IP不通或者端口不正确的情况下都没有任何异常。BIO的方式在IP不通的情况下没有异常,端口不通会报异常:Connection refused: connect。

当然也问了点纯Java的,很少,记不住问什么了(好像有一题:HashMap和数据结构中HashTable的区别),应该是比较常规的问题。如果不是常规的肯定不会遗忘了。后来面试结束前问我有么有什么问题想问的。我说:有没有什么建议?面试官说:他面过很多人,一般都不看重以前学校里学的基础知识,认为在工作中并没有太多的联系。其实工作越久会发现基础知识很重要。


二面

二面是V公司的高级经理,管技术的,应该是这个职位的领导。问了点Java基础的问题,比如GC相关的知识,那就从GC Roots, 分代,Serial, ParNew, Parallel Scavenge, Serial-Old, Parallel-Old, CMS等来一遍。
好像是还问了一个CMS什么时候发生Concurrent Mode Failure. Java基础问的很少,大多数是问分布式架构相关的。
首先在位置上问了一个:分布式内存怎么和数据库之间确保数据一致性?这个问题在前面的博文中也也有涉及。博主的回答大致是(一种解决方案):将某个库上的某个key要发生的写操作,记录在缓存中,并设置“经验主从同步时间”的缓存超时时间为500ms,这时间是指数据库主备同步的时间不会超过500ms,但是也有可能发生超过500ms的现象,当然可以设置的更久一点,只会偶尔发生最终一致性问题,大多数时候可以保证强一致性。由于一般数据库是读写分离的,写的时候将写的操作在数据库中执行并存入缓存设置超时时间500ms,当读的时候,先查缓存Redis,如果有相关记录则从Redis中返回,如果没有则说明已经同步到负责读的数据库中了,可以直接从读数据库中读取数据,这样也能做到读写数据库的分离。
有关数据一致性问题可以参考《浅析数据一致性》。
之后就找了两支笔,一人一只,然后在黑板上画了个图,基本是:App-缓存-数据库三者之间的关系,然后让我论述下。我看过很多分布式框架之间的资料,虽然现在的工作没有太多机会去实践,但是还能说个一二。基本上说了一通:负载均衡,流控,幂等性设计,数据一致性,缓存命中率,缓存失效,异常处理等。最后问了个如果缓存爆了,所有流量进入了数据库怎么处理,当时博主没想出来,只在读写分离上停留,后来面完下电梯的时候想起来分表分库的操作。


三面

三面的面试官就是一面的面试官,问了一些价值观,对行业的看法,以及也问了些技术性问题。比如在二面中也被问及的问题:一条数据写入时先写入数据库还是先写入缓存?


四面

四面的面试官比较有个性,有个小胡须。对简历上的信息问了一遍,技术性的问题没怎么问。
比如,看到我简历上的学校(211的,简历上写的本硕是一个学校,年级排名都是前5%,拿过一些奖学金神马的)问我当时怎么没想考研?比如博主同城的两所985学校?我说当时想过,认真研究了一番只想考上交大,但是比对前一年的入取情况,入取分数很高而且二面的通过又非常的低,所以就选择报送本校这样简单很多。面试官说:原来这么难考,我还不知道,我就是上交大的。
囧。。这都能撞上。。。。看我对上交大比较憧憬是不是要加点分。哈哈。


更多链接请关注:
这里有一份面筋请查收(一)
这里有一份面筋请查收(二)
这里有一份面筋请查收(三)
这里有一份面筋请查收(四)
这里有一份面筋请查收(五)
这里有一份面筋请查收(六)
这里有一份面筋请查收(七)
这里有一份面筋请查收(八)

参考资料
1. 攻破JAVA NIO技术壁垒
2. 浅析数据一致性

目录
相关文章
|
5月前
|
云安全 人工智能 安全
|
物联网
超级实用大礼包,请查收
IoT产品一看就会!
149 0
超级实用大礼包,请查收
|
数据采集 监控 Kubernetes
您有一份来自iLogtail社区的礼物待查收
从2021年11月开源以来,高性能轻量级可观测性采集器iLogtail受到了大量开发者的关注和建议。累计收藏800+次,收到建议100+条,PR 180+次,文章阅读量破万。在开源之初我们就坚信开源才是iLogtail最优的发展策略,也是释放其最大价值的方法,时隔9个月开源社区的积极反响让我们亲身体会到了社区在推动开源软件发展的价值,也让我们决定推出更多激励计划来感谢一直支持iLogtail的贡献者们。
272 0
您有一份来自iLogtail社区的礼物待查收
|
移动开发 前端开发 JavaScript
教你制作一份好简历
教你制作一份好简历
教你制作一份好简历
GitHub 消息邮件通知太烦人?收下这份指南!
经常有朋友反馈说邮箱被 GitHub 的消息通知狂轰滥炸,各种无关的邮件提醒搞得很烦。
747 0
GitHub 消息邮件通知太烦人?收下这份指南!
|
算法 Java 程序员
你有一份新的C++书单,请注意查收!
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
|
程序员 开发者
叮!一份顶级开源项目的邀请函,请查收~
风陵渡口初相遇,不入闲鱼误终身~
1961 0
|
安全 程序员 网络安全
2019年快来了,送给每位程序员一份新年计划清单
​ 一日之计在于晨,一年之计在于春,对于程序员来讲,挑战自我很重要。有创造力的以及技术性的休整是可行的。给自己的新年列个计划清单,一起在新的一年更好地成长吧! 进入真实生活 程序员们过分沉迷于数码设备,在数码设备之外也别有一番天地。
关于如何准备一份制胜简历的清单
引言 简历是公司了解求职者的第一个途径,也是求职者获取工作的敲门砖。可是,有多少人明明很优秀,却败给了一份不合格的简历? 这篇如何准备一份简历的清单分享给你,17条建议,助你“赢在简历”。 1. 简历是你的第一份产品,一定要认真对待,大方得体是王道。
1317 0