Java后端面试模板(技术面)

1、自我介绍模板

面试官您好!我是来自桂林电子科技大学计算机学院的一名大三学生,我的名字叫阙煜海。

在大学期间,我主要自学了一些主流的Java技术栈,其中主要包括:Java主流的框架:Spring MVC Spring Boot

Spring Cloud Mybaits ,以及常用的数据库MySQL,缓存Redis和常用的消息中间件RabbitMQ,搜索引擎ElasticSearch,并了解一些常用的设计模式比如单例模式、工厂模式、代理模式、策略模式等和一些Docker容器技术、JVM的基本知识。并通过结合所学技术栈自主做了两个项目,其中一个项目是有关微服务的OJ判题系统,该项目的主要核心是用户通过提交代码给后端,后端通过⽤ Java Runtime的exec ⽅法编译和执⾏Java代码,然后并通过Process类进行获取结果,通过与题目的测试结果进行对比来判断用户代码的正确性。

第二个项目是许苑刷题阁,主要是用户通过高效的搜索引擎进行题目的检索,然后进行在线做题,该项目的主要核心要点是围绕性能优化,保证数据的一致性,以及高并发下如何保证系统的安全性和稳定性。

2、项目介绍

2.1、OJ判题系统

它主要包括8个模块:

  • 公共模块:用来存放公共使用的工具类等等

    • 实体类模块:数据库的实体,请求类和通用响应类等等。
  • 网关模块:负责统一处理前端的请求,然后根据对应的路由规则路由到对应的模块服务。

  • 判题模块

    • i.提交判题(结果是否正确与错误)
    • ii. 错误处理(内存溢出、安全性、超时)
    • iii. 自主实现 代码沙箱(安全沙箱)
    • iv.开放接口(提供一个独立的新服务
  • 题目模块

    • i. 创建题目(管理员)
    • ii.删除题目(管理员)
    • ii. 修改题目(管理员)
    • iv. 搜索题目(用户)
    • v.在线做题
    • v. 提交题目代码
  • 用户模块

    • i.注册
      ii. 登录
  • 代码沙箱(扩展可以用AI作为模块开发)

    代码沙箱模块和判题模块之间的关系

  • 判题模块:调用代码沙箱,把代码和输入交给代码沙箱去执行。

  • 代码沙箱:只负责接收代码和输入的测试用例,然后进行编译运行,返回编译的结果,不负责判断题目的正确与否,实现了与判题模块之间的解耦。(可以作为独立的项目,供给远程的用户进行调用)

技术亮点:

为⽀持多种代码沙箱创建,采⽤静态⼯⼚模式实现沙箱扩展,并通过策略模式封装不同的判题逻辑。

使⽤ Java Runtime的exec ⽅法编译和执⾏Java代码,通过Process类获取结果。

为确保宿主机安全,利⽤Docker Java库创建隔离的容器环境执⾏代码。

为减少判题与服务模块之间的耦合,通过使⽤Rabbitmq技术进⾏解耦。

为保证项⽬各模块独⽴运⾏,选⽤了Spring Cloud Alibaba来实现微服务划分,

为保护服务的同时简化客⼾端的调⽤,项⽬通过Spring Cloud Gateway聚合路由服务,。

2.2、许苑刷题阁

基础功能

  • 用户模块

    • 用户注册
    • 用户的登录
    • 【管理员】 - 增删改查
  • 题库模块

    • 查看题库列表
    • 查看题库详情
    • 【管理员】管理题库 - 增删改查
  • 题目模块

    • 题目搜索
    • 查看题目详情(进入刷题页面)
    • 【管理员】管理题目 - 增删改查(添加题目到所属题库,修改题目所属题库等)

高级功能

  • 题目批量管理
    • 【管理员】批量增删题目
  • 分词题目搜索
  • 用户刷题记录日历图
  • 自动缓存热门题目
  • 网站流量控制和熔断
  • 动态 IP 黑白名单过滤
  • 同端登录冲突检测
  • 分级题目反爬虫策略

详细了解地址:https://blog.csdn.net/a147775/article/details/144302349

相关推荐
majingming1234 小时前
FUNCTION
java·前端·javascript
zopple4 小时前
常见的 Spring 项目目录结构
java·后端·spring
xuxie996 小时前
N11 ARM-irq
java·开发语言
cjy0001116 小时前
springboot的 nacos 配置获取不到导致启动失败及日志不输出问题
java·spring boot·后端
wefly20176 小时前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
zhenxin01226 小时前
Spring Boot实现定时任务
java
小江的记录本7 小时前
【事务】Spring Framework核心——事务管理:ACID特性、隔离级别、传播行为、@Transactional底层原理、失效场景
java·数据库·分布式·后端·sql·spring·面试
sheji34167 小时前
【开题答辩全过程】以 基于springboot的校园失物招领系统为例,包含答辩的问题和答案
java·spring boot·后端
寂静or沉默7 小时前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
卓怡学长7 小时前
m289在线交友系统
java·spring·tomcat·maven·intellij-idea·hibernate