北京碳阻迹 Java面试

一.项目和八股
1.预约失效是怎么实现的?
用xxl-job代替人工标记
2.用户登录流程
SpringSecurity+Redis,用户信息存入redis,返回前端uuid。
3.如果是集群部署的话怎么处理?
登录不受影响。集群连同一个redis服务,确保授权正常。
4.我看你引入了缓存,咋实现的?
引入SpringCache缓存部门的树形结构的数据......
5.怎么更新部门数据?
先更数据库,再删缓存
6.怎么保证双写一致性?
旁路缓存策略,巴拉巴拉,不知道他听了没有。
7.秒杀场景怎么保证数据一致性?
互斥锁
8.jwt的token和cookie区别?
答的一个后端无状态,一个需要维护前端信息,应该说错了。
9.第二个项目ai功能怎么实现?
两个功能都是调api
10.大模型上下文怎么处理?
没考虑到
11.ES用到哪些场景?倒排索引?
存文章数据;建立 分词->文档id 的映射关系
12.MySQL索引结构讲一下?
哈希表(无法范围查询) -> 二叉排序树(极端情况退化链表) -> 平衡二叉树(频繁左旋右旋增io) -> 红黑树(本质还是二叉树) -> B树(非叶子节点存索引和数据,增io) -> B+树(叶子才存数据; 双向链表,适合范围查询)
13.索引失效场景
说的是本质都是未按b+树构建规则来查,说了四种
14.接触过其它语言吗?
稍微学过c、c++、py
二.反问(他没让我问,我主动提出的)
1.业务:开发与碳中和相关的SaaS平台(没听过)
2.上下班:9点-18点半
三.感受
总体感觉还算能看吧,但8、10感觉答的不好。另外感觉面试官比较严肃,也没让我反问,问完挂的也很干脆,难道无望了吗
#牛客AI配图神器#
全部评论
tql
点赞 回复 分享
发布于 08-21 17:08 浙江

相关推荐

北京天志数融管理咨询有限公司Java开发面试,面试官压力给的不大,但是主包答的好乱,估计也寄了。一、Java后端开发岗位面试问题及标准答案1.C++中`struct`和`class`的区别(基础语法考察)问题本质:虽为C++知识点,但可反映对编程语言语法细节的掌握,间接体现逻辑严谨性(Java后端开发需理解多语言基础)。标准答案:两者核心差异在于默认访问权限和默认继承方式:`struct`默认成员为`public`(公共),默认继承方式为`public`;`class`默认成员为`private`(私有),默认继承方式为`private`;其他功能(如定义方法、继承、多态)完全一致。在实际开发中,`struct`更侧重数据存储,`class`更侧重封装逻辑。2.动态数组(DynamicArray)与链表(LinkedList)的区别及特点(数据结构考察)问题本质:Java后端开发中,集合框架(如`ArrayList`基于动态数组,`LinkedList`基于链表)是核心工具,需理解底层数据结构特性。标准答案:3.哈希表(HashTable)的基本概念及底层数据结构(数据结构+Java集合关联)问题本质:Java中的`HashMap`是后端开发高频工具,需理解其底层原理以优化代码性能。标准答案:核心功能:通过“键值”映射实现快速查询(平均O(1)),核心是哈希函数将“键”转换为数组索引。底层结构:由数组(桶)和链表/红黑树组成:数组是主体,每个索引对应一个“桶”;哈希冲突(不同键映射到同一索引)时,用“链地址法”存储:JDK8及以上中,当链表长度>8时转为红黑树(提升查询效率至O(logn)),<6时转回链表(节省空间)。4.数据库索引失效的常见原因(数据库优化考察)问题本质:Java后端开发需频繁与数据库交互,索引优化是性能调优的核心,直接影响系统稳定性。标准答案:索引失效指查询未使用预期索引,导致全表扫描,常见原因:对索引列使用函数(如`WHERESUBSTR(name,1,1)='A'`);索引列参与运算(如`WHEREage+1=10`);使用`NOTIN`、`!=`、`<>`等操作符;模糊查询以`%`开头(如`WHEREnameLIKE'%张三'`);联合索引未遵循“最左前缀原则”(如索引`(a,b,c)`,仅用`b`或`c`查询);索引列存在`NULL`值(数据库对`NULL`处理可能跳过索引)。5.如何查看SQL语句是否使用索引(数据库工具使用考察)问题本质:后端开发需具备分析SQL性能的能力,`EXPLAIN`是基础工具。标准答案:使用`EXPLAIN`命令(或`EXPLAINANALYZE`)分析执行计划,例如:```sqlEXPLAINSELECT*FROMuserWHEREid=1;```关键看`type`列:若为`const`(常量)、`eq_ref`(唯一索引匹配)、`ref`(非唯一索引匹配)等,说明使用了索引;若为`ALL`,则表示全表扫描(未使用索引)。6.HTTPS的定义及加密流程(网络安全考察)问题本质:Java后端开发需处理接口通信安全,HTTPS是基础安全协议。标准答案:定义:HTTPS是HTTP的安全版本,通过SSL/TLS协议在传输层加密,防止数据被窃听、篡改或伪造。加密流程(简化):1.客户端发起请求:发送支持的SSL/TLS版本、加密套件列表;2.服务器响应:选择加密套件,返回数字证书(含公钥和服务器身份);3.客户端验证证书:通过CA机构验证证书有效性,生成随机“会话密钥”,用服务器公钥加密后发送;4.服务器解密:用私钥解密获取会话密钥;5.对称加密通信:双方用会话密钥进行对称加密传输(后续数据均用此密钥)。7.项目与实习经历相关问题(匹配度考察)问题本质:判断候选人实际经验与岗位需求的契合度。参考答案:关于实习经历:“实习以软件实施为主,虽代码开发较少,但让我完整参与了企业级项目的需求分析、开发流程及客户对接,积累了对业务场景的理解和跨团队沟通能力,这对后端开发中准确理解需求很有帮助。”关于二手市场平台项目:“作为后端开发,我负责用户认证、商品发布与查询接口开发,使用Java+SpringBoot框架,数据库用MySQL,通过MyBatis实现CRUD操作,解决了并发查询时的性能问题(如添加索引优化)。”候选人提问环节(3~5分钟):候选人可询问公司业务方向(如“后端主要用哪些框架?”)、团队规模、面试结果反馈时间等(体现对岗位的重视)。面试官告知后续流程(如“1周内通过邮件/电话反馈”),双方礼貌结束对话。
查看8道真题和解析
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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