主题
正保远程教育 已完结
日期
2024 年 9 月 5 日
自我介绍
面试官您好,我是 wmh,是软件工程专业的 25 届应届生。
我的主要技术栈是 Spring Boot、MySQL、Redis。也会使用前端框架 Vue3,有一定的运维经验。
在校参与过学校项目组工作,有在校团队项目经验。参与过需求分析、数据库设计、开发、测试、部署等项目全流程。
在校期间完成了定时微服务、在线判题平台、个人导航站等项目,也与项目组成员合作开发过学校实验室预约系统、低代码平台组件库设计、学校申硕平台的二次开发等。
在校期间多次参与竞赛,曾获蓝桥杯省一和 CCPC 河北省赛的铜奖。
项目
对哪个项目印象比较深刻或者了解比较多?简述一下这个项目
印象比较深的是 OJ 在线判题平台这个项目。因为我在大一大二参加过很多算法类的竞赛,然后算法竞赛要求使用的就是这个在线判题平台,类似力扣那种输入代码,它能给你在线判题的平台。
我一直很好奇就是它到底是怎么实现的。我们然后通过从网上去调研一些解决方案,还有学习了一些开源项目获取思路,完成了这个项目。
你在里边做了什么?
主要是项目设计,还有这个后端的开发。前端是我和另一位同学一起做的。
Java 基础
Java 集合中常用的都有哪些?
ArrayList、HashSet、HashMap
JUC
多线程有几种实现方法?
- 继承 Thread 类,重写 run() 方法
- 实现 Runnable 接口,重写 run() 方法
- 实现 Callable 接口,重写 call() 方法
wait() 和 sleep() 有什么区别?
两者都可以暂停线程的运行
- 所属类:wait() 是 Object 类方法,sleep() 是 Thread 类方法
- 是否释放锁:wait() 释放锁,sleep() 不释放锁
- 用途:wait() 用于线程间交互/通信,sleep() 用于暂停执行
- 苏醒时间:wait() 调用后,线程不会自动苏醒,需要别的线程调用同一个对象的 notify() 或者 notifyAll();sleep() 执行完成后,线程会自动苏醒。
计算机网络
HTTP 中 get 和 post 的区别?
- 语义不同:get 指请求,post 指提交
- 请求参数:get 通常拼接在请求路径中,post 会携带请求体
Cookie 和 Session 有什么区别?应该怎么用?
- Cookie 存在客户端的,Session 存在服务端
- Cookie 可能被篡改,Session 安全性较高
Session 更适合作为登录凭证。
在前后端分离架构中,使用 Token 会更方便。前端框架实现可以在请求头中添加 Token,且避免了 Session 跨域错误。
HTTP 和 HTTPS 的区别
- HTTP 使用 80 端口,HTTPS 使用 443 端口
- HTTPS 使用 SSL 加密传输
- HTTPS 需要验证服务器的数字证书
SSM 框架
简述一下 SpringMVC 的调用流程
- 用户发送请求到达前端控制器
- 前端控制器调用处理器映射器,处理器映射器返回请求地址对应的处理器执行链
- 前端控制器调用处理器适配器,处理器适配器处理参数和返回值,调用指定的 Controller
为什么使用 Spring Boot?
Spring Boot 类似于脚手架,简化了 Spring 框架的配置、搭建和开发。
Spring Boot 的核心注解是什么?
@SpringBootApplication
Redis
Redis 的使用场景
- 作为 MySQL 的缓存
- 分布式登录
- 分布式锁
Redis 的基本数据类型
String、Hash、Set、ZSet、List
MySQL
如何优化慢查询
建立索引
索引的建立原则
- 常用于查询的列
- 列中数据差异较大,且非空数据较少
Linux
给文件修改权限
shell
chmod 777 a.txt
查看所有进程
- ps
- top