京东一面,很抽象的一次

面试时间是18点,感觉这个点一般都是吃饭时间。查了一下京东好像快19点吃饭,怪不得后面那么着急hhh
我提前进来了,面试官也提前两三分钟进来。竟然道歉说不好意思来晚了,我说没事还没到点。
面试官先介绍部门业务,然后问我有没有啥问题,我问了一下详细的组里面业务,然后自我介绍

进入正式问题环节
全程0八股,主要问实习和项目,全程几乎我一个人在巴拉巴拉说。

第一个难绷的点是,他让我介绍学校做的项目。我说我项目经历写了一个什么什么项目(什么什么背景做的),然后他说不不不不要这个,要别的学校比赛项目。我说了一个别的比赛项目,一直盘问我那个项目的细节,我一直引导向这个项目他还偏不问。不是哥们,那我写这个是干啥啊。

第二个难绷的点是,问我redis设立了分布式锁然后重启了咋办,我一开始没理解他意思,说集群高可用让他去请求别的正常。但是被他打断了且否认了,后来他说什么锁不会释放,我说设置的时候用EX设置过期时间。后来反问的时候他说用lua脚本设置,我说就这吗?俩人沉默了一段时间

第三个难绷的点是,他问我做定时任务的时候重启了咋办。我说首先你别再定时任务执行的时候重启,(然后我想说如果重启了咋办)但是被打断了,对方说那些定时任务咋能判断是不是执行,我说我们的业务一般是定时八点或者九点这种定时任务。然后说如果重启了这个任务大概率没执行完,你观察日志手动去做一些重试或者补偿。下来我想了一下,因为我们的定时任务是持久化到数据库的,所以假如服务重启了,可以根据数据库的状态判断任务的状态决定是否重试或者执行的时候做事务,中断的时候回滚。
结果后来反问的时候我问他这个情况实际生产咋办,他也绷不住了说“这个保密的不能告诉你”

后续他说问你这些问题也并不代表什么不通过啥的,然后问我能实习多久,我说(某个月中旬),他说那就(下个月)月初呗,我说就是某个月中旬,他说那你算的还挺准确

最后反问别的,他说时间来不及了不用问了。我直接来一手“感谢你的时间”结束抽象面试。

总结是很喜欢重启的一位面试官,也是时间很着急的面试官,大概是着急让我滚蛋然后去吃饭😂

#0offer互助地#
#牛客创作赏金赛#
全部评论
很喜欢重启hhhh
4 回复 分享
发布于 03-27 10:18 四川
后续,已回到人才池
3 回复 分享
发布于 03-27 16:38 黑龙江
京东哪儿重启了老哥那么烦
1 回复 分享
发布于 03-27 12:17 上海
面试官真幽默
1 回复 分享
发布于 03-27 10:49 辽宁
咋和我一面的那个面试官一个样
1 回复 分享
发布于 03-27 00:49 湖北
让我猜猜,这是京东工业?
1 回复 分享
发布于 03-27 00:49 湖北
第二条感觉可以用quartz的好几个策略回,我专门背了
点赞 回复 分享
发布于 04-14 13:09 江苏
京东这么晚吃饭吗,美团腾讯都是5:30吃饭
点赞 回复 分享
发布于 03-27 12:16 广东

相关推荐

部门:京东物流技术与数据智能部4.1更新已发offer流程:投递约面3.28一面上午九点二十二面上午十点hr面下午三点流程快的难以置信,面试时间大约10-20分钟,只聊了实习经历没有单独的八股,面试官很好,约的9:20然后他9:15就提前来了,看到来的更早还说迟到了,二面的领导也很和蔼,反问具体业务也特别详细的介绍。由于确实没有面到什么八股,就把之前准备京东整理的一些面经发一下吧1、增大堆内存命令,增大栈内存命令堆内存- -Xms:用于设置 JVM 堆内存的初始大小。- -Xmx:用于设置 JVM 堆内存的最大大小。栈内存- 可使用 -Xss 参数来调整栈内存大小。2、MyBatis $与#的区别有哪些#:它是预编译的占位符。MyBatis 在处理# 占位符时,会把 SQL 语句和参数分开处理。先将 SQL 语句中的 # 占位符替换为 ?,接着使用 PreparedStatement 来执行 SQL 语句,把参数值作为 PreparedStatement 的参数传入。这样可以有效防止 SQL 注入攻击。$是直接替换占位符。MyBatis 会直接把 $ 占位符替换为实际的参数值,而不进行预编译。这意味着参数值会原样插入到 SQL 语句中。3、使用$如何防止sql注入- 在将参数传递给 MyBatis 之前,要对参数进行严格的过滤和验证,确保参数值符合预期。例如,若参数是表名或列名,可预先定义一个合法的名称列表,只有在列表中的名称才允许使用。- 借助正则表达式来验证参数值,保证其只包含合法的字符。比如,对于表名和列名,通常只允许包含字母、数字和下划线。- 可以自定义 MyBatis 拦截器,在拦截器中对使用 $ 的 SQL 语句进行额外的检查和处理。4、MyBatis如何设置超时时间- 可以在 MyBatis 的全局配置文件(通常是 mybatis-config.xml)里设置超时时间,此设置会对所有的 SQL 语句生效。- 也能在 Mapper XML 文件里针对具体的 SQL 语句设置超时时间,这种设置方式会覆盖全局配置中的超时时间。5、MyBatis如何实现分页效果- 手动在 SQL 语句中添加分页逻辑,不同数据库的分页语法有所不同。例如,MySQL 使用 LIMIT 关键字- 使用第三方分页插件,如 PageHelper,它会自动拦截 SQL 语句并添加分页逻辑。6、PageHelper插件原理,哪个包提供的1. 拦截器注册:PageHelper 借助实现 MyBatis 的 Interceptor 接口,创建一个拦截器类。在配置 MyBatis 时,会把这个拦截器注册到 MyBatis 的拦截器链中。当执行 SQL 查询时,MyBatis 会按照拦截器链的顺序依次调用各个拦截器。2. 分页参数设置:PageHelper.startPage(pageNum, pageSize) 方法来设置分页参数,这些参数会保存在threadlocal中3. sql拦截和修改:拦截 Executor 的 query 方法。在拦截器的 intercept 方法中,会从 ThreadLocal 里获取之前设置的分页参数。对原先的sql添加limit等参数4. 执行sql命令5. 清除threadlocal7、深分页怎么优化?数据库层面- 覆盖索引,查询所需要的字段都包含在索引中,数据库可以直接从索引中获取数据,而无需回表查询- 嵌套查询,先去查主键id,然后select *- 如果是递增的,可以记录之前的id,然后条件里面添加where id > **业务层面- 缓存层处理- 前端分页限制8、雪花算法有什么问题?时间回拨:服务器的时间出现回拨,即时间被调整到过去的某个时刻,就可能导致生成的 ID 出现重复解决方案:- 如果时间差的不多的话,暂停ID的生成,然后等待时间恢复- 主机号那个地方,选出3位,当回退的时候序号+19、C10k 问题是什么,C10M呢C10k 问题是指服务器如何支持 10k(10,000)个并发连接的问题C10M 则是指服务器如何实现处理 10M(10,000,000)个并发连接的问题10、什么是同步和异步io,什么是阻塞和非阻塞io同步IO:程序发起一个 I/O 操作后,程序需要等待 I/O 操作完成后才能继续执行后续代码异步IO:程序发起一个 I/O 操作后,不必等待 I/O 操作完成,可以继续执行后续代码,后续用回调函数、信号等方式通知程序阻塞IO:程序发起一个 I/O 操作后,如果 I/O 设备没有准备好数据,程序会被挂起,处于等待状态,直到 I/O 设备准备好数据并完成数据传输,程序才会继续执行。非阻塞IO:程序发起一个 I/O 操作后,如果 I/O 设备没有准备好数据,程序不会被挂起,而是会立即返回一个错误信息,程序可以继续执行其他任务,通过轮询的方式来检查IO是否准备好数据。11、对AOP的理解面向切面编程,它是一种编程范式是对面向对象编程的补充核心概念涉及:切面:和业务逻辑没关,但是被多个模块调用的一些逻辑,比如日志信息、事务管理连接点:程序运行可以插入切面的点,比如是方法调用、返回、抛出异常的关键点通知:就是切面在连接点要干的事情。有前置通知、后置通知、环绕通知等实现方式主要静态代理和动态代理,静态代理就是在编译那一步去做的,对java代码进行修改,动态代理通过代理类把对应逻辑织入到目标链路中。主要有jdk代理和cglib代理两种。12、如果甲方很强势,给你一个需求,但是这个需求确实不能按期完成,你会怎么做?13、在实习的过程中是否有很难对接的情况,这种情况是怎么处理的呢#牛客创作赏金赛##京东##京东求职进展汇总##牛客AI配图神器#
点赞 评论 收藏
分享
评论
12
10
分享

创作者周榜

更多
牛客网
牛客企业服务