
于2024年11月面试的秋招,补发,三面手撕失败故挂。
一面
-
自我介绍:
-
线程池:
- 问题:线程池是解决什么问题的?
- 追问:为什么线程池能够解决耗时长的问题?
- 追问:同一时间10个线程速度能快10倍吗?
- 追问:为什么能快10倍?
- 追问:为什么只开了10个线程?
- 追问:怎么确定要开多少个线程?
- 追问:怎么调整线程数?
- 追问:为什么不直接调很大?
- 追问:线程池主要是用来做什么的?
- 追问:线程池如何减少内存消耗?
- 追问:Java里实现线程池有哪些工具?
-
类加载:
-
HTTP缓存:
- 问题:HTTP协议如何控制客户端缓存?
- 追问:为什么要做缓存?
- 追问:如何判断数据是否变更?
- 追问:项目中有用过缓存吗?
-
XSS攻击:
- 问题:XSS攻击是什么?
- 追问:如何防止XSS攻击?
- 追问:XSS攻击能攻击什么?
- 追问:过滤富文本是怎么过滤的?
-
算法题
leetcode 108、173
二面
-
自我介绍:
-
实习工作内容:
-
服务端和客户端开发的区别:
-
项目优化:
- 问题:如何通过内存池和线程池提升性能?
- 追问:如何保证多线程导出的内容是顺序的?
- 追问:为什么性能提升这么多?
- 追问:如何处理大业务量对内存的影响?
-
安全攻击防护:
- 问题:对XSS和CSRF的了解?
- 追问:如何过滤XSS和CSRF?
-
认证和授权:
- 问题:RBAC模型是如何实现的?
- 追问:如何实现安全的认证和授权?
-
消息通知:
- 问题:为什么选择RabbitMQ?
- 追问(面试官):RabbitMQ和RocketMQ的事务消息实现区别?
-
加密算法:
- 问题:为什么使用bcrypt哈希算法?
- 追问:bcrypt与AES和RSA的区别?
- 追问:AES和RSA的应用场景?
-
HTTPS加密通信:
- 问题:HTTPS加密通信是如何实现的?
- 追问(面试官):HTTPS中使用的是对称密钥还是非对称密钥?
- 追问:什么是DNS污染吗,以及如何防止中间人攻击?
- 追问:客户端安装第三方证书的风险?
-
GC机制:
-
并发和死锁:
-
算法题:
leetcode 143
-
反问
三面
-
自我介绍:
-
数据报表导出:
- 问题:数据报表是怎么生成的?
- 追问:数据库性能不够怎么办?
-
密码加密:
- 问题:为什么使用 BCrypt?
- 追问:盐值存在哪里?
- 追问:盐值暴露出来怎么办?
- 追问:为什么不用 HMAC?
-
登录模块——Token生成:
- 问题:Token是怎么生成的?
- 追问:过期时间怎么处理?
- 追问:Token更新机制是什么?
-
日志记录:
-
Redis持久化:
- 问题:Redis在什么情况下会持久化?
- 追问:会产生脏数据吗?
-
编码题:
手撕:有A、B两个文件,各有50亿个URL,电脑内存只有4G,找出A、B中相同的URL
#面经##拼多多##凉经##春招##软件开发笔面经#