大厂Java面试:当严肃面试官遇上搞笑程序员谢飞机

📅 发布时间:2026/7/13 4:41:04 👁️ 浏览次数:
大厂Java面试:当严肃面试官遇上搞笑程序员谢飞机
面试场景互联网大厂Java面试故事背景谢飞机是一名程序员来到了某互联网大厂参加Java开发岗位的面试。第一轮提问Java基础知识面试官你能简单说一下Java的四种引用类型吗谢飞机哦这个简单。强引用就是new出来的软引用是那种内存不足时会被回收的弱引用更弱点虚引用就更虚了。面试官总结得不错。面试官那你能谈谈HashMap的底层实现原理吗谢飞机HashMap嘛就是放东西的key-value那种。底层好像是数组加链表吧后来又改成了红黑树。面试官基本掌握。面试官ArrayList和LinkedList的区别是什么谢飞机ArrayList是数组查找快增删慢LinkedList是链表增删快查找慢。面试官很好。第二轮提问JVM和多线程面试官JVM内存分区有哪些谢飞机嗯堆、栈、方法区……好像还有个本地方法栈面试官继续。谢飞机还有个啥来着……永久代哦对现在好像改成元空间了。面试官基本可以。面试官那线程池的核心参数有哪些谢飞机corePoolSize、maximumPoolSize、queue啥的还有个拒绝策略。面试官那拒绝策略你了解吗谢飞机嗯……拒绝策略啊就是不让线程进来呗。面试官……面试官假如有两个线程同时操作一个变量你会怎么解决线程安全问题谢飞机用锁呗synchronized或者Lock啥的。面试官没错。第三轮提问框架与中间件面试官你对Spring的IOC有了解吗谢飞机这个简单就是控制反转嘛把对象交给Spring管理。面试官那AOP呢谢飞机面向切面编程干嘛啥的都能切一刀。面试官好。那么MyBatis的一级缓存和二级缓存有啥区别谢飞机一级缓存是SqlSession级别的二级缓存是全局的。面试官Dubbo的服务调用流程你了解吗谢飞机…沉默三秒…嗯是有服务发现、注册中心啥的吧。面试官好回去等通知。技术点详细解答1. Java引用类型强引用普通的对象引用JVM不会主动回收。软引用当内存不足时会被回收适合做缓存。弱引用生命周期更短只要GC运行就会被回收。虚引用提供了一种确保对象被finalize后做清理的机制。2. HashMap底层实现原理HashMap基于数组和链表实现JDK 1.8后优化为数组链表/红黑树结构。当链表长度超过阈值时默认8链表会转为红黑树提高查询效率。3. ArrayList vs LinkedListArrayList基于动态数组查询快增删慢。LinkedList基于双向链表增删快查询慢。4. JVM内存分区堆存储对象实例。栈存储方法执行的栈桢包括局部变量表等。方法区存储类信息、常量等JDK 8后改为元空间。本地方法栈为本地方法服务。5. 线程池核心参数corePoolSize核心线程数。maximumPoolSize最大线程数。keepAliveTime线程空闲时间。workQueue任务队列。rejectionHandler拒绝策略如AbortPolicy, CallerRunsPolicy等。6. Spring IOC与AOPIOC通过依赖注入DI实现对象控制反转。AOP通过切面编程实现横切关注点的分离。7. MyBatis缓存一级缓存默认开启基于SqlSession生命周期为SqlSession。二级缓存需要手动开启作用域是Mapper级别。8. Dubbo服务调用流程服务注册服务提供者将服务注册到注册中心。服务发现消费者从注册中心获取服务地址。服务调用消费者通过协议调用服务。希望这篇文章能帮助你更好地理解Java面试中的核心知识点