麦吉太文 后端开发 一面(附答案)

麦吉太文 后端开发 一面

这里是公众号崩天的勾玉,题目来自牛客网分享,这里做答案题解

分享作者:川沙妲己,来源:牛客网

貌似麦吉太文的面经很少,我可能是全网首发 😊。

以前没有了解过麦吉太文,忘了是在哪里看到的,boss还是脉脉上有提到过这家公司,就去搜了搜,感觉还不错就尝试了一下。

10.17 做的笔试,笔试两道编程,都比较简单,力扣简单水平。

10.25 电话通知面试

10.26 一面

面试官很和蔼,一直笑眯眯的,很nice。问的内容就是纯纯八股文,背就完事了。没有手撕代码,全程大概30min。下面是我记得的一些问题。

开场:

自我介绍

介绍一下项目功能,只说了功能,没有延伸

勾玉:建议延申,引导面试官提问

问个人优势是什么?希望以后在公司干什么方向的?(答:后端)

然后开始八股:

你的项目是 springboot做的为什么用springboot?

勾玉:答springboot优势,主要是简化配置,集成组件方便

aop ioc介绍一下?

勾玉:http://mp.weixin.qq.com/s?__biz=MzU3MDk4MTAyMQ==&mid=2247484131&idx=1&sn=cfeb45100a9e76481d2ea8b6f7b01caf&chksm=fce66d11cb91e4071756ff14fb0c20253ac48a1dcb8487dd2d4d93b3a9d9e0fa3bb01d00a2d0#rd

用过mybatis吗?

说几种熟悉的设计模式?

勾玉:https://www.runoob.com/design-pattern/design-pattern-intro.html

讲一下Mysql索引(说了innodb myisam区别)

勾玉:这里题主不应该答引擎的区别,而是应该回答聚簇与非聚簇、联合索引、覆盖索引等等的区别和作用,还可以引申到b树、b+树

你的项目里用索引了吗?

你的项目里存了多少数据?如果让你存1亿条数据你怎么办?(答:分库分表)

分库分表会遇到什么问题?怎么解决?(答:分布式id问题 用redis,雪花算法解决)

如果你发现查询很慢怎么办?(答:explain)

慢sql定位:配置slow_query_log和long_query_time,然后explain分析,关注type和extra,explain用于查看sql语句执行计划;
当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施如下:

  1. 限定数据的范围: 务必禁止不带任何限制数据范围条件的查询语句。比如:我们当用户在查询订单历史的时候,我们可以控制在一个月的范围内。;
  2. 读/写分离: 经典的数据库拆分方案,主库负责写,从库负责读;
  3. 缓存: 使用MySQL的缓存,另外对重量级、更新少的数据可以考虑使用应用级别的缓存。

还有就是通过分库分表的方式进行优化,主要有垂直分表和水平分表。

说说jvm?(说了内存区域和垃圾回收)

参考:八股文之【JVM内存结构】

八股文之【JVM垃圾回收】

平时用jdk哪个版本?

勾玉:8或者11,介绍区别

在浏览器中输⼊url地址 ->>会发生什么过程?

勾玉:大体分为构建请求、传输过去、服务器构建响应、传输回来、浏览器渲染五步。

构建请求

应用层进行DNS解析,通过DNS将域名解析成IP地址。在解析过程中,按照浏览器缓存系统缓存路由器缓存ISP(运营商)DNS缓存根域名服务器顶级域名服务器主域名服务器的顺序,逐步读取缓存,直到拿到IP地址。然后在应用层构建HTTP请求报文

传输

传输层建立TCP连接,三次握手。然后网络层IP协议来选择路线,将数据段segment装入数据包packet,填充包头,主要就是添加源和目的IP地址,然后发送数据。在数据传输的过程中,IP协议负责选择传送的路线,称为路由功能。数据链路层实现网络相邻结点间可靠的数据通信,物理层将数据转换成电子、光学或微波信号进行传输

服务器接收到这个比特流,把比特流转换成帧格式,上传到数据链路层,服务器发现数据帧中的目的MAC地址与本网卡的MAC地址相同,服务器拆除数据链路层的封装后,把数据包上传到网络层。服务器的网络层比较数据包中的目的IP地址,发现与本机的IP地址相同,服务器拆除网络层的封装后,把数据分段上传到传输层。传输层对数据分段进行确认、排序、重组,确保数据传输的可靠性。数据最后被传到服务器的应用层

HTTP服务器,如nginx通过反向代理,将其定位到服务器实际的端口位置,如8080。比如,8080端口对应的是一个NodeJS服务,生成响应报文

接着,通过传输层、网络层、数据链路层的层层封装,最终将响应报文封装成二进制比特流,并转换成其他信号,如电信号到网络中传输

渲染

客户机接受到二进制比特流之后,把比特流转换成帧格式,上传到数据链路层,客户机发现数据帧中的目的MAC地址与本网卡的MAC地址相同,拆除数据链路层的封装后,把数据包上传到网络层。网络层比较数据包中的目的IP地址,发现与本机的IP地址相同,拆除网络层的封装后,把数据分段上传到传输层。传输层对数据分段进行确认、排序、重组,确保数据传输的可靠性。数据最后被传到应用层。

浏览器对html、css、js、图片等资源进行渲染

反问:一共几轮面试? 一共两轮

总结:面试官人很好,最后还跟我说感谢参加面试,感动。也没有深问技术,就是基础的八股文。不过公司规模比较小我估计也不会招太多人吧。不知道有没有机会二面。

———-—————————————————————

11.9号凌晨两点收到感谢信,也算预料当中吧。

ps感谢信写得很真挚,各种祝福各种夸,不过还是凉凉…

  • 题目分享自牛客网用户
  • 题解为公众号【崩天的勾玉】所写,欢迎关注、学习
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值