麦思多维-Java开发实习

字节跳动 · Java开发工程师 · 重庆 · 2026-05

《面试题目》

  1. base成都,专注于数据科学、人工智能和虚拟仿真技术的高校教育解决方案提供

腾讯会议面试

自我介绍

  1. java的基本数据类型
  2. 基本数据类型中字节数比较大的是哪几种?
  3. 集合ArrayList的扩容机制是什么?
  4. HashMap负载因子的大小影响到什么?
  5. == 与 equals比较对象时的区别是什么?
  6. 说出一些线程安全的集合
  7. jdk8的新特性你知道哪些?
  8. 针对集合处理的stream流,常用方法有哪些?
  9. JVM中,哪些区域是私有的,哪些是共用的
  10. ThreadLocal的作用是什么?
  11. 线程池的核心参数有哪些?
  12. Mysql中,什么是覆盖索引?
  13. redis的数据结构有哪些?
  14. redis缓存穿透和雪崩的区别?
  15. 项目中,你通过ElasticSearch做向量数据库,那它和传统的关键字搜索的区别是什么?
  16. 讲一下服务器运维的经验
  17. 如何排查服务器的内存占用情况?
  18. 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。