2021.3.8携程【校招】后台开发一面面经


今天携程一面,面试官长得挺帅的哈哈哈!
然后面试官针对我简历中的项目问了很多问题!
还有面试官很喜欢问Redis方面的问题!
大家加强啦!
下面是面试的题目!


补充:

  • 我说我研究生的课题里面有200w的运动传感器数据需要处理,所以自己写了个前后端分离的分布式项目来处理,一方面是为了处理数据,另一方面是检验自己在B站学习的内容。
  • 接着我就表现一下自己,讲了这个是三表连接,然后讲了我如何优化查询,从explain关键字的分析到根据where 条件中的字段建立索引,让查询时间成功降到10s以内
  • 显然面试官对我将代码应用到项目中很感兴趣,还问我这个项目是自己独立完成的还是有团队?我说我运动科学专业的,周围没有人懂编程,所以是自己一个人搞的。
  • 后来面试官还问我,那当数据量达到了千万级别,比如两千万,三千万怎么办,我说我没有实际操作过,但是看到博客说可以采取分库分表的方式。
  • 问到我mysql索引的数据结构的时候,我从从B+树和B树之间的对比,到聚簇索引和非聚簇索引的对比,到Innodb和MyISAM的对比,都讲了一圈
  • 面试官问我Java线程安全的类时,我从Collections.synchronizedList() 讲到 CopyOnWriteList,到ConcurrentModificationException
  • 后来不知道怎么的一路讲到了AtomicInteger -> UnSafe.getAndInt() -> CAS的思想 -> CAS的缺点 -> ABA问题 -> 用AtomicStampedReference增加版本号进行解决
  • 对了面试官还问了我ConcurrentModificationException出现的业务场景,我因为没有接触过实际业务,我就说了如果一个业务的数据用ArrayList存储的时候,多个用户并发修改的话会出现这个异常
总结:
  • 我在面试里面也有一些问题答不出来,就比如我脑子其实不太好(就是数理逻辑方面转的很慢,但是艺术天赋很高哈哈哈,以前学了好多年绘画和音乐),以前数学就学的不好,做算法数据结构的题目对我来说很困难
  • 但是有一些知识性的东西,问到了,我懂,我就努力的讲得又多又深,把握住这个机会!努力的表现自己,这是很重要的!
再补充:评论区有些朋友眼尖的看到我研究生专业是运动科学,夸我跨专业厉害,实在是过奖。我本科也是计算机专业的,因为本科的时候太喜欢健身了想往竞技体育方面走,所以研究生选择了运动科学专业。后来因为伤病原因没有办法继续走竞技体育这条路。刚好我的研究生专业就业前景很不好,所以大概研二下学期的时候想走回计算机这条路的,然后开始复习并且学习新知识的,所以我不算跨专业。朋友们别夸我啦,我实在是不好意思,太心虚了

#面经##校招##携程##Java工程师#
全部评论
我擦 体育的都来计算机了
8 回复 分享
发布于 2021-03-08 15:16
兄弟你笔试了嘛?
1 回复 分享
发布于 2021-03-08 14:34
楼主这应该是应届春招吧?春招怎么能找到大厂岗位
点赞 回复 分享
发布于 2021-06-20 17:41
这问的也太难了吧。让我上一个都不会
点赞 回复 分享
发布于 2021-03-09 12:14
大佬 一面过了嘛
点赞 回复 分享
发布于 2021-03-09 10:01
大佬什么时候投的?有3/8号笔试完收到通知面试的吗
点赞 回复 分享
发布于 2021-03-08 23:18
楼主你好,我问一下,一面完多久有二面通知,我今天下午一面
点赞 回复 分享
发布于 2021-03-08 21:38
仰慕大佬
点赞 回复 分享
发布于 2021-03-08 17:49
我今天上午面了一个小时,感觉问题比你这多一些,但是好像都是java基础相关的知识,希望能够二面
点赞 回复 分享
发布于 2021-03-08 17:08
感觉楼主虽然是跨专业 但是知识掌握的很厉害呀
点赞 回复 分享
发布于 2021-03-08 16:55
这也太卷了吧!运动科学也来计算机了!不过大佬确实厉害👍😂
点赞 回复 分享
发布于 2021-03-08 15:48
兄弟面了多久,我面了半小时就结束了,都没有手撕环节
点赞 回复 分享
发布于 2021-03-08 15:30
跨专业大佬😃
点赞 回复 分享
发布于 2021-03-08 14:24
您好,那道高并发领取优惠券码问题面试官回答的方向是什么可以说一下么,是分布式锁么
点赞 回复 分享
发布于 2021-03-08 13:00
楼主你好,请问你是实习、校招还是社招?
点赞 回复 分享
发布于 2021-03-08 12:39

相关推荐

从输入URL到页面加载发生了什么:总体来说分为以下几个过程: 1.DNS解析 2.TCP连接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.连接结束。简述了一下各个过程的输入输出作用:以下是对从输入 URL 到页面加载各过程的输入、输出或作用的一句话描述:DNS 解析: 输入:用户在浏览器地址栏输入的域名(如 www.example.com)。输出:对应的 IP 地址(如 192.168.1.1)。作用:将易于记忆的域名转换为计算机能够识别和用于网络通信的 IP 地址,以便浏览器与目标服务器建立连接。TCP 连接: 输入:浏览器获得的服务器...
明天不下雨了:参考一下我的说法: 关键要讲出输入网址后涉及的每一个网络协议的工作原理和作用: 涉及到的网络协议: HTTP/HTTPS协议->DNS协议->TCP协议->IP协议->ARP协议 面试参考回答: 第一次访问(本地没有缓存时): 一般我们在浏览器地址栏输入的是一个域名。 浏览器会先解析 URL、解析出域名、资源路径、端口等信息、然后构造 HTTP 请求报文。浏览器新开一个网络线程发起HTTP请求(应用层) 接着进行域名解析、将域名解析为 IP 地址 浏览器会先检查本地缓存(包括浏览器 DNS 缓存、操作系统缓存等)是否已解析过该域名 如果没有、则向本地 DNS 服务器请求解析; 本地服务器查不到会向更上层的 DNS 服务器(根域名服务器->顶级域名服务器->权威域名服务器询问)递归查询 最终返回该域名对应的 IP 地址。(应用层DNS协议)DNS 协议的作用: 将域名转换为 IP 地址。 由于 HTTP 是基于 TCP 传输的、所以在发送 HTTP 请求前、需要进行三次握手、在客户端发送第一次握手的时候、( 浏览器向服务器发送一个SYN(同步)报文、其中包含客户端的初始序列号。TCP头部设置SYN标志位、并指定客户端端口 同时填上目标端口和源端口的信息。源端口是浏览器随机生成的、目标端口要看是 HTTP 还是 HTTPS、如果是 HTTP 默认目标端口是 80、如果是 HTTPS 默认是 443。(传输层) 然后到网络层:涉及到(IP协议) 会将TCP报文封装成IP数据包、添加IP头部,包含源IP地址(浏览器)和目标IP地址(服务器)。IP 协议的作用: 提供无连接的、不可靠的数据包传输服务。 然后到数据链路层、会通过 ARP 协议、获取目标的路由器的 MAC 地址、然后会加上 MAC 头、填上目标 MAC 地址和源 MAC 地址。 然后到物理层之后、直接把数据包、转发给路由器、路由器再通过下一跳、最终找到目标服务器、然后目标服务器收到客户的 SYN 报文后,会响应第二次握手。 当双方都完成三次握手后、如果是 HTTP 协议、客户端就会将 HTTP 请求就会发送给目标服务器。如果是 HTTPS 协议、客户端还要和服务端进行 TLS 四次握手之后、客户端才会将 HTTP 报文发送给目标服务器。 目标服务器收到 HTTP 请求消息后、就返回 HTTP 响应消息、浏览器会对响应消息进行解析渲染、呈现给用户
点赞 评论 收藏
分享
评论
14
88
分享

创作者周榜

更多
牛客网
牛客企业服务