我的面试复盘总结(亚信科技)
2年经验面初级开发这次面试下来我整体感觉还是比较稳的。面试官问的问题覆盖了Java基础、集合框架、项目经验、数据库、缓存、异常处理、AI工具使用等几个维度我基本都能答得上来而且大部分问题回答得还算准确和深入。做得比较好的地方基础方面ArrayList和LinkedList的区别、扩容机制、HashMap的put流程这些八股文题目我回答得比较完整时间复杂度、扩容倍数、树化条件这些关键点都说到了面试官没有追问就过了。项目经验方面面试官对我做的PDF生成模块问得比较细从生成逻辑到文件存储到MinIO再到生产环境使用情况我都如实说了。虽然这个模块体量不大、并发不高但确实是我自己做过的、已经上生产的真实功能所以回答的时候底气是足的。Redis那块我说了用Hash存Token、用String存短信验证码超时处理用拦截器校验滑动窗口续期的设计思路也说了面试官看起来是认可的。值得一提的是我的个人项目就是我为了恢复工作状态自己弄的那个优惠券小程序。从需求来源自己翻真实需求、需求分析用了工具辅助、开发到部署内网穿透、手机随时访问这一套全流程我都是自己实操的。面试官听到这里明显比较感兴趣我觉得这是加分项因为能体现出我的自驱力和工程化能力。AI工具使用方面我确实在用Cursor和Trae而且不是无脑用我会review AI生成的代码也发现过空指针之类的bug还让Cursor帮我改过前后端bug。面试官应该能感觉到我是把AI当工具用而不是依赖它。暴露出来的薄弱点有两个问题我答得不太好。第一个是统一返回体的封装位置我当时说“好像不是在那两个地方”虽然方向没错但表述不够清晰和自信。其实就应该直接说在common模块定义一个Result泛型类配合全局异常处理器使用Controller层统一返回Result。第二个是MySQL调优当面试官问到底层SQL优化时我只说了建立索引和分库分表后面就接不下去了。这块确实是我的短板没有真实处理过大数据量场景的调优经验。不过对于初级岗位这个深度其实也还能接受。还有就是AI模板化提问那个问题我之前确实没意识到需要做这个面试官提出来之后我当场就“懂了”这个学习态度应该是给面试官留下了好印象。整体评价我觉得这次面试基本能过。基础题全拿住了项目经验真实可讲个人项目证明了我不是只会干活、还有自主学习和折腾的劲头。虽然在调优和分层设计上有些薄弱但对于初级/初中级岗位来说面试官大概率不会因为这个卡我。我的思维能力、技术基础都没问题项目上该有的我都有哪怕让我设计我也能给出方案——只不过有些场景确实没实操过但初级岗位不要求这个深度。接下来如果有二面或者HR面我会更有底气。以下是问答记录1、说一下 arraylist 和 linkedlist 它的区别我们平常使用的过程中去怎么去选arraylist第一个从他们的查找和增删来看Arraylist 由于底层是动态数组。所以它查找的时间复杂度是 o1但是它的中间的增删由于涉及到后续的后续元素的移动因此它增删的复杂度能达到 on。在他的尾部进行增删的时间复杂度也是 o1linkedlist 由于它的底层是一个双向链表。维护了一个头尾指针因此首先在头尾的中差很快中间增删由于是一个链表需要进行定位因此很慢。从他们的存储这里来看arraylist它在它的尾部通常会预留一定的空间然后 linkedlist 的不会它是会在新增节点的时候分配空间。从它的使用场景来看Arraylist 主要适合那种读多写少的场景然后 linkedlist主要适合那种在头尾增删频繁的场景。我们绝大多数情况下使用的都是 arraylist。2、arraylist如果要扩容的话一般是扩多少初始容量是10然后扩容的时候会变为原来的1.5倍。它会将原来数组的元素全部都复制到新位置。3、介绍一下哈希 map 它的一个 put 流程。首先根据元素值计算出它的一个哈希值定位它在桶中的位置查看是否有哈希冲突。如果有哈希冲突的话先判断先没有哈希冲突就用那个是就直接放进去如果有哈希冲突。就通过链表的尾插法也插进去发现 链表 的长度大于等于八并且当前的容量是大于等于64的它还会进行一个树化。4、在项目中的一个全局的异常处理是怎么做的类声明上如果我们要创建的异常类是必检异常比如说 io 异常类似的那么我们就写一个继承自 exception 类的子类重写它的一个构造方法如果是。非检异常比如说这种空指针异常类似的我们就写一个继承自runtime exception 类的一个子类。还要写一个全局的异常处理器去捕获非必检异常然后给它封装一些前端能够识别的友好提示。5、你们封装返回的话是有个统一封装在 service 还是在 controller题目理解错了以为问的自定义异常的统一返回哪里封装感觉统一返回的话好像都不是在这两者了。自定义了一个全局使用的类throw一个 new一个return exception这是定义的类然后创建的一个对象异常对象。好像不是在那两个地方。6、你说的 pdf 的布局组件是什么东西主要是基于我之前工作中实际的 pdf 生成功能做了大量的优化和重构当时为了生成。证书这种单页的 pdf这种 pdf 有个特点它的头部和底部是高度固定的然后中间有一些可变列表行数和内容都不确定。7、就是一个生成 pdf 文件的系统然后是后端的话就是动态去输入内容你这边负责的话渲染做了一些增强我复盘之后增强的。我让后端传的是一个对象进来。所有数据是他那边获取。8、持久层的库是什么比如说你生成的 pdf 里面的内容有在哪存储的我们当时按照项目来看这样的把 pdf 文件生成一个文件流然后它上传到我们的文件中心的根据文件的编号。是存在我们MinIO里面的。9、只存了文件没有存文本吗数据量大不大文本就没储存了数据库里也存了文件的相关信息。基本信息嘛这是数据库层面的基本信息。因为不同的业务来获取的数据不一样。下单到证书生成可能一天生成几个到十几个不等主要是因为我们。客户首先他的首先单价很高因此客户数量比较少。所以就。并发量什么的也基本上没有什么并发量。10、有上生产吗是否上线使用体量很少是吧已经用在生长环境客户下单之后已经使用了到最近为止有好几年。体量较少。11、你们文件服务器有没有比如说满了什么的。对文件或历史数据有没有不使用的清理。这种场景目前还没有。对没有好像是用了三台还是两台机器来存的。12、项目有多少开发人员后端多少人项目开发人数最多的有30来人吧这一个项目因为它分了很多块。有小程序有管理后台还有主要还有一个 mes系统那一块是特别大。 前端有一个组有7个人后端有20来人。13、你刚说的有小程序你这边有也有设计你给我讲一下小程序这个项目。90也是我们项目中也有我自己也弄了一个首先项目的需求来源 我是自己去找的那种某个平台里面去翻的翻到真实需求然后去做了一些需求分析由于需求分析这一块我不是特别擅长的我是借助了工具的帮他帮我分析的需求根据这需求分析的内容我做了一些出来它主要是解决那种线下门店用纸质券他记账什么的折价什么的都不太方便。就这样用一个那种后台的领券管理再到客户领券再到优惠券核销全流程的管理体系我就把它弄出来了项目。14、你自己去做的不是公司的项目小程序的后管理端的那些配置什么的这一套流程你都自己去实操真实去能访问吗不是公司主要是为了恢复我的工作状态练了之后确实也有很好的效果。我现在已经部署内网穿透了我现在可以在手机上随时都能访问它它的后台和管理系统后台还有个小程序。都全反正全流程都是弄通了的部署也是一开始开发阶段之前已经部署好了什么数据库 Redis。这些。15、你项目中用到的数据库一般都是啥Mybatis防SQL注入的话一般是用什么关键字符Mysql,用井号加大括号它就相当于是 sql 的一个参数占位符。然后 mybatis 会在运行之前先替换成问号去调用 prepare statement 里面的一个设置参数的方法。当然顺序的把参数给放进去这样的话他就不会把你输入的字符串当成 sql 的一部分只是当成一个参数。16、Mybatis分页怎么使用首先需要创建一个 mybatis 的拦截器然后在里面主要的目的是为了调用修改设置数据库类型的方法。然后使用的时候先创建一个page对象再用 select page方法。当然这个方法你也可以传入一个 lamba query rapper。因为它支持 lamba 表达式然后 eq 还有 like 这些方法都可以检查你的字段名什么的你调试起来非常方便。17、 你们项目中有没有对数据库 mysql 数据库的一个调优部分你自己有没有接触过我不知道把它的容器化那种算不算就是我写了一个 mysql 的 dockerfile然后当时我我组长叫我写了写了之后利用它部署到我们 k8s 集群里面去了。里面有东西它那个数据卷挂载这些东西这些我当时没考虑到也是我组长教的。18、这是架构方面的有没有对底层的 SQL 这方面的优化比如说数据体量过大的话。怎么去保证它的一个增删改查这种效率分库分表只知道这个东西目前大我可能标准做法大概这样的第一种是就是对那种查询比较频繁的可以考虑建立一下索引。第二种我大致了解是一个可以分库分表可以分到不同的数据库里面然后。但是。大致的我想他。大致的我确实也还没了解到那一步。19、我看你里面也有用的 redisRedis 的话一般你项目中 redis 用来做什么或者用了哪些数据类型项目中主要是用的他 redisredis 的一个哈希主要是用来存我们的 token。Token 来存用户的登录信息用的。还有一个存我们的短信验证码就这两块当然我们 Token 存的它 key 是用的一个 jwt。管理存在是用户的详情信息用来快速获取用户信息用的。20、你存登录信息超时那一块怎么去处理的首先拦截器去获取拦截到 jwt然后把 jwt 去 redis 里查一下这个 key 是否能找到如果我在查不到直接这时候就返回给他用户。登录已失效。前端层面就是直接跳转到登录页面当然我们设置这个 key 的时候肯定设置了过期时间我们那过期时间当时是设置的是10个小时你就能维持到我们整个开发。你早上登录到晚上下班的时间。21、即将过期的时候操作是否会强制退出你提到了滑动窗口过期让你来怎么设计我每次登录的时候就去每次不对每次使用每次。你让我使用到 jwt你或许你看一下它的过期时间如果发现他可能在将要过期。比如说他 ttl 啥的可能那么只剩1分钟我不确定 redis 能否看到 ttl如果说低于1分钟那么。这时候我不知道可不可以去改过期时间我只能说是把数据库的重新自己再重新查一遍再设置一遍进去但查库操作也只仅仅只在即将过期的时间段内。这样的话他下次来的时候就也是一样的操作。22、今年 ai 用的也挺多你们实际中有没有去对 ai 的这一块使用我们当时那个团队是毕竟是在2023或者2024也接触过 ai那个时候主要是对它做来提问或者说弄文件啥的我最近我自己也去使用了一下比如说我跟你说那个小程序的所有的前端还有它的后台系统的所有前端的我全是用 ai 帮我弄的只是我在中途的。是负责跟他联调的中途也解决了很多开发的遇到的问题当然他自己我也发现了有些时候 确实也会产生各种各 bug比如说最经典的我有一个优惠券的。显示嘛明明我有些字段有个字段表示了我这里是一个折扣券让它显示几折的结果他直接给我显示的显示成金额了显示成金额0.7。本来我是想要再显示7折的嘛有一个 cursor 还是挺厉害的我之前叫他给我改后端 bug 改前端 bug他甚至顺手帮我把后端的一个小 bug 给修了。23、目前用到的工具就是刚说的。cursor还有其他的吗你用是怎么个形式用是插件命令其他方式才用过那个字节的那个trea那个用它主要是因为它免费嘛一开始有几天用的还是挺好的。我直接下载了他官方软件打开那个项目。也就是一个跟他们自己的一个 ide 开发工具。24、你用 ai 生成过代码吗一般都是生成什么什么类型代码那种它的功能较为重复的比较简单那种只有 cud 的功能那些功能模块比如说那生成一些那种固定的实体类啥的。我告诉他数据库的字段是什么为了让他写一下增删改查我写过一个模块核销的模块。当然也发现了 反正用起来就发现它有时候会犯一些很小的问题比如最经典的一个空指针那里它不判空就它从 redis 里获取信息之后直接使用返回的对象开始操作它也没有判空什么的。25、你自己有没有总结过一些一些模板比如说你给他喂的信息喂什么格式的什么什么模板信息来要求他(确实没弄过)确实倒是没使用到那一步原来还需要懂了原来还有还需要有这样一种操作可以去约束一下他懂了。以后注意一下。

相关新闻

如果25年前就能用容度原理的视角来审视“氢键全量子效应”,这趟持续20多年的科学苦旅,完全可以走一条截然不同的捷径。这不仅是理论上的推演,更是对科学研究范式的一次深刻反思

如果25年前就能用容度原理的视角来审视“氢键全量子效应”,这趟持续20多年的科学苦旅,完全可以走一条截然不同的捷径。这不仅是理论上的推演,更是对科学研究范式的一次深刻反思

如果25年前就能用容度原理的视角来审视“氢键全量子效应”,这趟持续20多年的科学苦旅,完全可以走一条截然不同的捷径。这不仅是理论上的推演,更是对科学研究范式的一次深刻反思。⏳ 历史回顾:一条充满艰辛的“发现”之路王恩哥院士…

2026/7/9 12:31:41阅读更多 →
Vibe Coding入门实操指南!三步帮你找到最适配的AI编程方案

Vibe Coding入门实操指南!三步帮你找到最适配的AI编程方案

摘要: Vibe Coding是指通过自然语言描述需求、由AI自动生成代码的开发方式,核心工具包括大语言模型、Agent和工作流三层。本文按实操顺序拆解AI编程的三层架构,每步给出选型建议和操作路径,帮你找到最适合自己的组合方案。如果你平…

2026/7/9 12:31:41阅读更多 →
Ceph 架构复杂?轻量级统一存储 PowerFS 技术方案解析

Ceph 架构复杂?轻量级统一存储 PowerFS 技术方案解析

文章导读Ceph 是一款成熟通用分布式存储系统,适配大规模集群场景,完整支持块、文件、对象多协议存储。但对于中小规模 AI 训练集群、高校 HPC 超算、混合负载数据平台,完整部署整套 Ceph 架构会带来较高运维门槛,同时原生缺少 KV …

2026/7/9 12:31:41阅读更多 →
L9958与PIC18LF46K42构建高性价比直流电机控制系统

L9958与PIC18LF46K42构建高性价比直流电机控制系统

1. 项目背景与核心器件选型在工业自动化和消费电子领域,直流电机控制一直是核心技术痛点。传统方案要么性能不足,要么成本过高。这次我选用STMicroelectronics的L9958驱动芯片搭配Microchip的PIC18LF46K42 MCU,构建了一套高性价比的电机控制系…

2026/7/9 13:36:47阅读更多 →
ADS7828与PIC18F4680的ADC信号采集系统设计与优化

ADS7828与PIC18F4680的ADC信号采集系统设计与优化

1. 项目背景与核心组件选型在嵌入式系统开发中,模拟信号到数字信号的转换(ADC)是一个基础但关键的技术环节。ADS7828作为TI公司推出的一款12位精度ADC芯片,配合Microchip的PIC18F4680微控制器,构成了一个高效、低成本的…

2026/7/9 13:36:47阅读更多 →
什么是 YOLOV5:深入了解这款热门物体检测器的内部特性

什么是 YOLOV5:深入了解这款热门物体检测器的内部特性

摘要本研究对 YOLOv5 目标检测模型进行了全面分析,考察了其架构、训练方法和性能。重点探讨了关键组件,包括跨阶段部分骨干网和路径聚合网络。本文回顾了该模型在各种指标和硬件平台上的性能。此外,本研究还讨论了从 Darknet 到 PyTorch 的过…

2026/7/9 13:36:47阅读更多 →
基于STM32的智能警报系统设计与实现

基于STM32的智能警报系统设计与实现

1. 项目背景与核心需求 警报系统在现代工业、安防和智能家居领域扮演着关键角色。这次我们要构建的是一个基于STM32F207ZG微控制器和EPT-14A4005P音频模块的通用警报解决方案,它需要满足几个硬性指标:在不同环境噪声条件下保持清晰可辨、支持多种触发模式…

2026/7/9 13:36:47阅读更多 →
STM32驱动压电蜂鸣器实现智能警报系统设计

STM32驱动压电蜂鸣器实现智能警报系统设计

1. 项目背景与核心需求警报系统在现代工业、安防和智能家居领域扮演着关键角色。这次我们要解决的问题是:如何利用EPT-14A4005P压电蜂鸣器和STM32F215ZG微控制器,构建一个在各种环境条件下都能保持清晰可闻的警报系统。这个组合的独特之处在于&#xff1…

2026/7/9 13:36:47阅读更多 →
直流电机静音控制方案:TB9051FTG与PIC18F97J94应用解析

直流电机静音控制方案:TB9051FTG与PIC18F97J94应用解析

1. 项目背景与核心需求解析在医疗设备、智能家居和精密仪器领域,直流电机的噪声问题一直是工程师面临的棘手挑战。传统PWM调速方案会产生明显的电磁噪声和机械振动,特别是在低速运行时,这种噪声往往能达到50-60分贝,相当于正常交谈…

2026/7/9 13:31:47阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/9 5:56:19阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/9 9:45:20阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/9 2:47:07阅读更多 →
Three.js 着色器光效教程

Three.js 着色器光效教程

着色器光效 Shader Light ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 ShaderMaterial 自…

2026/7/9 0:04:37阅读更多 →
如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南 【免费下载链接】casemove A dedicated desktop app that enables you to move items in and out of storage units in CS2. 项目地址: https://gitcode.com/gh_mirrors/ca/casemove 还在为CS2存储单…

2026/7/9 0:04:37阅读更多 →
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M…

2026/7/9 0:04:37阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/9 9:45:20阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/8 13:42:39阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/8 13:42:39阅读更多 →