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

已经写到第六篇了,本文说的这家公司是博主投的最随意的,属于手滑点赞的那种。这里简称为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. 浅析数据一致性

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
<p> <span style="font-size:14px;color:#337FE5;">【为什么学爬虫?】</span> </p> <p> <span style="font-size:14px;">       1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到!</span> </p> <p> <span style="font-size:14px;">       2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站</span> </p> <p> <br /> </p> <span style="font-size:14px;color:#337FE5;">【课程设计】</span> <p class="ql-long-10663260"> <span> </span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: </p> <ol> <li class="" style="font-size:11pt;color:#494949;"> 网络求:模拟浏览器的行为从网上抓取数据。 </li> <li class="" style="font-size:11pt;color:#494949;"> 数据解析:将求下来的数据进行过滤,提取我们想要的数据。 </li> <li class="" style="font-size:11pt;color:#494949;"> 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 </li> </ol> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: </p> <ol> <li class="" style="font-size:11pt;color:#494949;"> 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 </li> <li class="" style="font-size:11pt;color:#494949;"> Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 </li> </ol> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 </p> <p style="font-size:11pt;color:#494949;">   </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 从基础爬虫到商业化应用爬虫,本套课程满足您的所需求! </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <br /> </p> <p> <br /> </p> <p> <span style="font-size:14px;background-color:#FFFFFF;color:#337FE5;">【课程服务】</span> </p> <p> <span style="font-size:14px;">专属付费社群+定期答疑</span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <span style="font-size:16px;"><br /> </span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <span style="font-size:16px;"></span> </p>
<div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;"> </span> <div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;"> </span> <div style="color:rgba(0,0,0,.75);"> <div style="color:rgba(0,0,0,.75);"> <span style="color:#4d4d4d;">当前课程中商城项目的实战源码是我发布在 GitHub 上的开源项目 newbee-mall 新蜂商城,目前已 6300 多个 star,</span><span style="color:#4d4d4d;">本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 商城项目功能的讲解,让大家实际操作并实践上手一个大型的线上商城项目,并学习到一定的开发经验以及其中的开发技巧。<br /> 商城项目所涉及的功能结构图整理如下:<br /> </span> </div> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <p style="color:#4d4d4d;"> <img alt="modules" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3N0b3JlL25ld2JlZS1tYWxsLXMucG5n?x-oss-process=image/format,png" /> </p> </div> <p style="color:rgba(0,0,0,.75);"> <strong><span style="color:#e53333;">课程特色</span></strong> </p> <p style="color:rgba(0,0,0,.75);">   </p> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <ul> <li> 对新手开发者十分友好,无需复杂的操作步骤,仅需 2 秒就可以启动这个完整的商城项目 </li> <li> 最终的实战项目是一个企业级别的 Spring Boot 大型项目,对于各个阶段的 Java 开发者都是极佳的选择 </li> <li> 实践项目页面美观且实用,交互效果完美 </li> <li> 教程详细开发教程详细完整、文档资源齐全 </li> <li> 代码+讲解+演示网站全方位保证,向 Hello World 教程说拜拜 </li> <li> 技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,可以进一步提升你的市场竞争力 </li> </ul> </div> <p style="color:rgba(0,0,0,.75);">   </p> <p style="color:rgba(0,0,0,.75);"> <span style="color:#e53333;">课程预览</span> </p> <p style="color:rgba(0,0,0,.75);">   </p> <div style="color:rgba(0,0,0,.75);">   </div> <div style="color:rgba(0,0,0,.75);"> <p style="color:#4d4d4d;"> 以下为商城项目的页面和功能展示,分别为: </p> </div> <div style="color:rgba(0,0,0,.75);"> <ul> <li> 商城首页 1<br /> <img alt="" src="https://img-bss.csdnimg.cn/202103050347585499.gif" /> </li> <li> 商城首页 2<br /> <img alt="" src="https://img-bss.csdn.net/202005181054413605.png" /> </li> <li>   </li> <li> 购物车<br /> <img alt="cart" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvY2FydC5wbmc?x-oss-process=image/format,png" /> </li> <li> 订单结算<br /> <img alt="settle" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvc2V0dGxlLnBuZw?x-oss-process=image/format,png" /> </li> <li> 订单列表<br /> <img alt="orders" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvb3JkZXJzLnBuZw?x-oss-process=image/format,png" /> </li> <li> 支付页面<br /> <img alt="" src="https://img-bss.csdn.net/201909280301493716.jpg" /> </li> <li> 后台管理系统登录页<br /> <img alt="login" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWxvZ2luLnBuZw?x-oss-process=image/format,png" /> </li> <li> 商品管理<br /> <img alt="goods" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWdvb2RzLnBuZw?x-oss-process=image/format,png" /> </li> <li> 商品编辑<br /> <img alt="" src="https://img-bss.csdnimg.cn/202103050348242799.png" /> </li> </ul> </div> </div> </div> </div>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值