【面经合集】当 deepseek 遇上蔚来的面试|Java后端|01
🌟【友情提示】本篇面经来自粉丝投稿+智能润色,点击进入 -> 🔗互联网面经大全 围观25届校招修罗场!!每个技术细节都经过脱敏处理,请勿对号入座~
🌈 面试官:
看你简历有自动化测试经验,先做个自我介绍吧
💬小基:
面试官好,我是22届计算机专业的小基,之前在XX公司做过半年的测试开发。主要负责接口自动化框架搭建,用Python+Requests写过数据驱动测试模块,也参与过性能测试方案设计。业余时间喜欢用JMeter做接口压测实验,最近在学Docker部署测试环境...
🌈 面试官:
说说面向对象的四大特征怎么理解?
💬小基:
四大金刚嘛!抽象就像做蛋糕模具,抽离关键特征;封装好比自动咖啡机,把研磨萃取打包成按钮;继承类似手机型号迭代,Note系列继承S系列功能;多态就像USB接口,鼠标键盘都能插。
🌈 面试官:
展开说说封装,public成员算破坏封装吗?
💬小基:
封装就像快递盒📦,把数据和操作打包。举个栗子,做温度传感器类:
class Sensor: def __init__(self): self._raw_data = 0 # 底层ADC原始值 @property def temperature(self): """ 将原始值转换为摄氏度 """ return self._raw_data * 0.25 - 273.15
这里隐藏了_raw_data的处理细节。public成员就像没封口的盒子,虽然能用但可能被乱改,所以建议用属性访问控制。
🌈 面试官:
写个单例模式看看?
💬小基:
用装饰器最方便,比如全局日志管理器:
def singleton(cls): instances = {} def get_instance(*args, **kwargs): if cls not in instances: instances[cls] = cls(*args, **kwargs) return instances[cls] return get_instance @singleton class AppConfig: def __init__(self): self.theme = "dark"
这样配置对象全局唯一,第一次初始化后直接复用。
🌈 面试官:
进程和线程的区别说下?
💬小基:
好比餐馆后厨:
- 进程是独立厨房,有自己厨具(内存空间)
- 线程是厨房里的多个厨师,共享厨具但要协调
具体差异三点:
维度 进程 线程 资源开销 大(独立内存) 小 通信方式 管道/消息队列 共享变量 崩溃影响 不影响其他进程 整个进程挂掉
🌈 面试官:
怎么保证线程安全?
💬小基:
三个锦囊:
- 同步锁:像超市单入口,用with threading.Lock()
- 原子操作:如Python的Queue自带线程安全
- 不可变对象:像元组数据只读最安全
举个转账例子:
class BankAccount: def __init__(self): self.balance = 0 self.lock = Lock() def transfer(self, amount): with self.lock: self.balance += amount
🌈 面试官:
父类方法只想被子类调用,怎么做?
💬小基:
Python里用双下划线前缀:
class Base: def __secret_method(self): print("子类专用") class Child(Base): def call_secret(self): self._Base__secret_method() # 强制调用
不过更推荐用abc模块定义抽象方法,约束子类必须实现。
🌈 面试官:
Cookie和Session的区别?
💬小基:
这俩像会员卡和后台档案:
Cookie Session 存储位置 浏览器本地 服务器内存/Redis 安全性 可能被篡改 较安全 生命周期 可设置过期时间 浏览器关闭即失效 比如登录状态:服务端生成session_id存Cookie,每次请求带这个"会员卡号"查服务器档案。
🌈 面试官:
接口测试要注意哪些点?
💬小基:
重点检查五个方面:
- 边界值:比如年龄传-1或200
- 鉴权机制:不带token能否访问
- 幂等性:重复提交订单是否防重
- 性能基准:响应时间是否陡增
- 错误码覆盖:404/500等异常场景
上次遇到个bug:分页参数传超大数值导致数据库CPU飙高,所以现在测试必测page_size=10000的情况。
📖 总结
这次面试持续了70分钟,面试官问得很全面。最大的感受是基础概念要理解本质,比如单例模式面试官追问了懒汉/饿汉式的选择场景。网络部分的问题都答上来了,但测试用例设计那块让我现场设计登录测试用例时,一开始漏了安全测试点,后来补充了SQL注入和暴力破解的检测。
建议准备测开岗位的同学:
- 多画架构图理解Web请求流程
- 线程安全相关的问题要准备实际案例
- 登录模块测试要分功能/安全/兼容性多个维度
- 遇到不会的问题先讲思路,别直接说不知道
最后面试官让我反问环节,问了团队用的自动化测试框架,感觉和他们现在用的技术栈匹配度挺高的。总之项目经验结合基础知识才是王道,继续加油啦!
#deepseek##java##蔚来#本专栏收集了互联网上的面试经验贴