北京印行-Java开发实习

腾讯 · Java开发工程师 · 重庆 · 2026-05

《面试题目》

  1. base重庆,金融科技公司,主要为东南亚国家和新兴市场的银行及金融机构提供数字银行 SaaS 系统和一站式 Bank As A Service 解决方案。
  2. 腾讯会议面试 59min
  3. 自我介绍
  4. Integer a = 100;Integer b = 100;
  5. print(a==b)的结果是true还是false?
  6. String c = “hello”;String d = “hello”;
  7. c==d 的结果是true还是false?
  8. String s1 = “a” + “b”;String s2 = “ab”;
  9. s1==s2 的结果是true还是false?
  10. int a = 100;Integer b = Long;
  11. a==b 的结果是什么?
  12. 讲一下你知道的JVM
  13. 现在时间是17:07,如何求出时针和分针的夹角度数,讲一下逻辑
  14. 用白板算一下
  15. 你讲一下ai的使用情况
  16. 给你一个题,你可以使用ai辅助,我看一下你的完成过程
  17. 设计一个秒杀系统库存扣减接口

需求描述: 12. 单品库存:100件 13. 预期并发:1000 QPS 14. 要求:不能超卖,不能少卖 15. 技术栈:Java + Redis + MySQL 16. 你需要:写出核心代码 + 用AI辅助完成


《参考解析》

  1. MySQL深度:MySQL InnoDB使用B+树索引,支持ACID事务。关键知识点:聚簇索引(主键索引)叶节点存完整行数据;辅助索引叶节点存主键值(需回表);MVCC通过undo log版本链+ReadView实现多版本并发控制,解决脏读/不可重复读;事务隔离级别从低到高:读未提交→读已提交→可重复读(默认)→串行化。

  2. Redis核心:Redis常用数据结构:String/Hash/List/Set/ZSet。持久化:RDB(定期快照,恢复快,数据可能丢失)和AOF(追加日志,数据安全,文件大)。缓存穿透用布隆过滤器;缓存雪崩加随机过期时间+多级缓存;缓存击穿用互斥锁或逻辑过期。分布式锁用SET key value NX PX + Lua脚本保证原子释放。

  3. JVM与GC:JVM内存模型:堆(对象分配,GC管理)、方法区(类信息、常量池)、虚拟机栈(栈帧/局部变量/操作数栈)、本地方法栈、程序计数器。GC算法:标记-清除(内存碎片)、标记-整理(无碎片,但移动对象)、复制(新生代)。G1按Region划分堆,预测停顿时间。

  4. Java并发:Java并发:synchronized关键字(偏向锁→轻量级锁→重量级锁升级);ReentrantLock(可重入、可中断、公平锁);volatile(内存可见性+禁止指令重排,不保证原子性);CAS(Compare-And-Swap,无锁乐观并发);ThreadLocal(线程本地变量,WeakReference,注意内存泄漏)。线程池核心参数:corePoolSize/maximumPoolSize/keepAliveTime/workQueue/handler。