快手java后端一面凉经,发出来攒攒人品

流程:

8.7 简历

8.8 一面

8.10 问了HR,收获 **“待定” ** 评价。hr:需要横向对比,对比完会成为通过(= _ =!但愿如此吧)

总共58分钟,面试官人很好,没歧视我这个材料转码的人(555)

  1. 自我介绍+开场闲聊
  2. 秒杀项目+rpc框架实现
  3. 项目提问,rpc框架如何实现
  4. 秒杀项目什么场景下用到了redis,用到了哪些数据结构,怎么用的(答得不好)
  5. sychronized关键字及其使用场景、与lock、reenterentlock的区别(从java object对象中的markword的字段出发,然后扯远了,没有提到volatile以及并发和线程池;最后说其他锁的区别也是在胡言乱语,直说了sync是隐式锁,lock是显示锁,sync配合wait使用,lock需要手动加解锁)
  6. 浏览器键入url到返回页面,中间经历了哪些过程,越详细越好(先是查电脑ip缓存,没有就通过dns找,找到了就通过网络链路进行传播,建立tcp连接,三次握手,如果是https,就是三次握手加tls的四次握手,tls这里没说清楚,应该先说对称加密与非对称加密的,直接说了四次握手的过程,含含糊糊的,没表示清楚,之后再把服务端的springmvc说了一遍,从dispatchserverlet到handler到modelandview都说了一遍,(中间的链路层部分没有讲),面试官直呼下功夫了,然后探讨https进行加密之后的通信用的是私钥还是公钥:都不是,是加密之后的会话密钥(master secret)
  7. mysql的隔离性是怎么保证的(先讲了事务的级别,再说了隔离级别由锁进行保证的,(复盘的时候才发现没说锁的分类),就mysql的默认隔离级别RR进行分析,分析可能出现的问题(不可重复读和幻读),解释了如何通过不同生成readreview的时机来解决不可重复读问题,最后幻读问题通过mvcc+next-key lock进行解决,最后提到了在高并发的情况下,事务A先当前读,在插入,事务B当前读在插入,next-key lock会导致死锁的问题,死锁破环掉四大必要条件即可解除死锁,面试官到这说了一句还能这样,我平时都没碰到过。。。XD)
  8. 笔试题(20min)如下 (不怎么会做,完全就不是leetcode,或者是sql,或者是多线程交替打印abc,123)
  9. 反问:

1. 应届生什么水平才能达到进入大厂?

回答:没什么要求,你只要过了简历筛选的都是很优秀的人(T_T 感动ing),部门里也有很多材料的转码的

2. 什么时候出结果?

回答:两三天出结果

  1. 互道再见
  2. 笔试题
Implement a simple CSV string parser.

Requirements:

一个CSV字符串包含多行,每行代表一行

 每行中的元素以逗号分隔, 

双引号字符串被视为单个元素,即使它们包含换行符或逗号。 

 要转义双引号字符串中的双引号,应将其表示为 '\"'(反斜杠后跟双引号)。

CSV Example:

Name,Age,Address
John Doe,30,"123 Main Street, Apartment 4B"
Alice Smith,25,Kwai Plaza
Mary Johnson,35,"456 Elm Avenue, Suite 10C"

Example:

csvStr="Name,Age,Address\nJohn Doe,30,\"123 Main Street, Apartment 4B\"\nAlice Smith,25,Kwai Plaza\nMary Johnson,35,\"456 Elm Avenue, Suite 10C\""
output=[
  ["Name","Age","Address"],
  ["John Doe","30","123 Main Street, Apartment 4B"],
  ["Alice Smith","25","Kwai Plaza"],
  ["Mary Johnson","35","456 Elm Avenue, Suite 10C"]
]


题目描述:

相对时间与绝对时间的格式转换

第一部分:

times 是一个由 long 类型的时间戳组成的数组, [[t0,t1], [t2,t3], [t4,t5], ..., [t(n-1), tn]]

  , 数组中的时间戳是升序的: t0<=t1<=t2<=... 

target 是一个 long 类型的时间戳

写一段程序, 返回 target 在 times 中的相对时间, 注意要跳过 times 中的时间间隙; 

返回格式为 HH:mm:ss:zzz

示例:

times = [[1690370263154,1690370264154], [1690370312286,1690371233716], [1690373334968,1690373376373], [1690373440821,1690373557514]]

target = 1690371083888

返回: 00:12:52:602

第二部分:

relativeTime 是上面得到的相对时间字符串, 格式为 HH:mm:ss:zzz

结合原始数据 times, 返回它的绝对时间戳 target

示例:

times = [[1690370263154,1690370264154], [1690370312286,1690371233716], [1690373334968,1690373376373], [1690373440821,1690373557514]]

relativeTime = 00:12:52:602

返回: 1690371083888

提示:

t0 <= target <= tn

t0 到 tn 的时间跨度不会超过 24 小时

#晒一晒我的offer##我的失利项目复盘##如何判断面试是否凉了##快手信息集散地##23届找工作求助阵地#
全部评论
就一面?
1 回复 分享
发布于 2023-08-11 11:25 广东

相关推荐

我的名字是句号:接好运
点赞 评论 收藏
分享
评论
3
41
分享

创作者周榜

更多
牛客网
牛客企业服务