26年2月百度 Java开发工程师 二面

1. 详细介绍一下你的OJ判题系统项目,架构是怎么设计的?

回答

:OJ判题系统采用前后端分离架构,前端Vue.js,后端Spring Boot。核心模块包括:题目管理模块(CRUD、测试用例管理)、代码提交模块(在线代码编辑、语法检查)、判题模块(代码沙箱、安全检查、输出比对)、用户模块(登录注册、权限控制)。判题流程:用户提交代码→语法检查→编译→放入代码沙箱执行→获取输出结果→与测试用例比对→返回判题结果。

2. 代码沙箱是如何实现的?安全性如何保证?

回答

:代码沙箱采用Docker容器隔离执行。每个用户提交代码创建独立容器,超时自动销毁。安全措施包括:资源限制(CPU时间、内存限制、文件大小)、网络隔离(禁止访问外网)、系统调用限制(白名单机制)、超时控制(防止死循环)、临时文件清理。Docker镜像使用最小化基础镜像,只包含必要运行时。

3. 讲讲MySQL的锁机制?行锁和表锁的区别是什么?

回答

:MySQL锁分为行锁和表锁。行锁锁定数据行,锁粒度小,并发度高,但开销大,会发生死锁。表锁锁定整张表,锁粒度大,并发度低,但开销小,不易死锁。InnoDB支持行锁和表锁,默认使用行锁。行锁包括:共享锁(S锁)、排他锁(X锁)、意向锁(表级锁)。

4. 什么是死锁?死锁的必要条件有哪些?如何避免死锁?

回答

:死锁是两个或多个线程相互等待对方持有的资源,导致都无法继续执行。死锁必要条件:互斥条件(资源只能被一个线程持有)、请求与保持条件(持有资源同时请求其他资源)、不剥夺条件(不能强制剥夺线程持有的资源)、循环等待条件(形成资源等待环路)。避免死锁方法:按固定顺序获取锁、设置超时时间、使用tryLock非阻塞获取锁。

5. TCP三次握手和四次挥手的过程是什么?为什么需要三次握手?

回答

:三次握手:客户端发送SYN(seq=x)→服务器发送SYN+ACK(ack=x+1, seq=y)→客户端发送ACK(ack=y+1)。四次挥手:客户端发送FIN(seq=u)→服务器发送ACK(ack=u+1)→服务器发送FIN(seq=v)→客户端发送ACK

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论
可以的,写的很好呢
点赞 回复 分享
发布于 03-29 21:59 北京
可以的,总结的很好呢
点赞 回复 分享
发布于 03-29 21:59 北京

相关推荐

04-08 14:18
已编辑
西安电子科技大学 Java
2026/4/7号发文4/1号起取消主动离职N+1,希望各位应届生擦亮眼睛,台风厂这垃圾公司一定别来!!!干事偷偷摸摸1、台风天不放假;2、分红不提前公布直接定到最低;3、离职补偿无任何公告,过了日期再通知;骚操作一个比一个多,天天喊口号奋斗,奋斗**呢奋斗!在补充一下内部大佬总结的“福利”1.(主动离职)n+1没了 增加员工稳定性2. 八年换工号规避合同问题补贴的n+1补贴美其名曰延迟发放 实际是为了增加员工稳定性3. 股票有减值风险 提前锻炼理财能力 帮你多多储备现金4. 公积金5% 个人部分不给自己多缴 帮你多多储备现金5. 没有全薪病假 鼓励你努力锻炼增强体质6. 大多数员工没有年假 防止你旅游度假 大花特花7. 所有假期(婚丧嫁娶年假)都扣你考勤系数 让你提前感受人间不过一场梦7. 上班时间越来越早(部分8点30)下班时间不可能提前 充分享受公司免费福利8. 台风天 疫情时期别人居家 你拥有上路通行证9. 基本上没有下午茶 民主生活会以及团建 减少垃圾食品摄入10. 领导对你有绝对控制权 实力不祥 跪X为王 让你做人圆滑处世11.出差也要打卡 锻炼早起能力12.全网几乎无差评 亲戚面前倍儿有面请各位学弟学妹擦亮双眼!!!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务