面试场景模拟:严肃面试官 vs 搞笑程序员谢飞机
第一轮提问:Java基础与JVM
-
面试官:请解释Java中的垃圾回收机制。 谢飞机:啊,垃圾回收就是那个自动清理内存的东西吧?比如System.gc()可以手动触发!(自信满满) 面试官:不错,但System.gc()只是建议,不保证立即执行。你能说说G1收集器的特点吗? 谢飞机:呃...G1是那个...分区的?(支支吾吾)
-
面试官:Java 8的Stream API有什么优势? 谢飞机:Stream可以链式调用,写起来很酷!(得意) 面试官:很好,那并行流需要注意什么? 谢飞机:这个...线程安全?(挠头)
-
面试官:JVM内存模型分为哪几部分? 谢飞机:堆、栈...还有那个...方法区?(不确定) 面试官:基本正确,但方法区在Java 8后改为元空间了。
第二轮提问:Spring与微服务
-
面试官:Spring Boot自动配置的原理是什么? 谢飞机:就是@EnableAutoConfiguration那个注解!(快速回答) 面试官:那你知道它是怎么扫描到需要加载的类吗? 谢飞机:这个...META-INF/spring.factories?(试探)
-
面试官:Feign和RestTemplate有什么区别? 谢飞机:Feign更简洁,像写接口一样!(流畅) 面试官:那Feign的负载均衡是如何实现的? 谢飞机:啊...Ribbon?(不确定)
-
面试官:Spring Cloud Gateway的核心组件有哪些? 谢飞机:路由、过滤器...还有Predicate!(努力回忆) 面试官:不错,看来你对基础概念有了解。
第三轮提问:数据库与缓存
-
面试官:MySQL的索引失效场景有哪些? 谢飞机:用了函数、like左模糊...还有OR条件!(流利) 面试官:很好,那B+树索引的优势是什么? 谢飞机:这个...查询快?(含糊)
-
面试官:Redis的持久化机制有哪两种? 谢飞机:RDB和AOF!(秒答) 面试官:那AOF的重写过程了解吗? 谢飞机:呃...合并命令?(不确定)
-
面试官:Hibernate的一级缓存和二级缓存区别? 谢飞机:一级是Session级别的,二级是...跨Session?(努力) 面试官:基本正确,回去等通知吧。
问题答案详解
- 垃圾回收机制:G1收集器采用分区算法,适合大堆内存,可控停顿时间。
- Stream API:并行流需注意线程安全和共享变量问题。
- JVM内存模型:堆(对象实例)、栈(线程私有)、元空间(类元数据)。
- Spring Boot自动配置:通过spring.factories文件加载配置类,条件注解控制生效。
- Feign负载均衡:集成Ribbon,通过@FeignClient的name属性关联服务名。
- MySQL索引失效:B+树索引支持范围查询,有序性高。
- Redis持久化:AOF重写通过fork子进程生成紧凑的新AOF文件。
- Hibernate缓存:二级缓存可跨Session,需配置缓存提供商(如Ehcache)。