·269 字·2 分钟
反射慢?慢多少你测过吗 # “反射很慢,尽量别用。“这话你肯定听过。但到底慢多少?慢在哪?大部分人说不清楚,我之前也说不清楚,干脆自己测了一下。
怎么获取 Class 对象 # 反射的入口是 Class 对象,三种方式:
·278 字·2 分钟
Spring Boot 自动配置,看完你就不慌了 # 用 Spring Boot 写项目的时候,你有没有想过:我就加了个 spring-boot-starter-web 依赖,Tomcat 怎么就自己跑起来了?数据源我就配了个 URL,连接池怎么就自动用上 HikariCP 了?
这背后全是自动配置在搞事情。
@SpringBootApplication 背后藏了什么 # 启动类上那个 @SpringBootApplication,其实是个组合注解:
·301 字·2 分钟
Java 泛型这几个坑你肯定踩过 # Java 泛型这东西,看着简单用着顺手,直到踩坑才发现自己根本没搞懂。上周写作业一个泛型编译错误折腾了我一个多小时,气得把泛型重新学了一遍。
类型擦除到底擦了啥 # Java 的泛型是假泛型。编译之后泛型信息就没了,全变成 Object(或上界类型),这叫类型擦除。
volatile 到底能保证什么 # Java 内存模型简单说 # 聊 volatile 之前,得先说说 Java 内存模型(JMM)。放心,不讲太深,够理解 volatile 就行。
AOP 这东西,说难不难说简单不简单 # AOP,面向切面编程。第一次听到这个词的时候我满脸问号——什么切面?切什么?
后来我换了个理解方式就通了:你有一堆业务方法,想在每个方法执行前后都打个日志,怎么办?一个个方法里加 log.info()?那要是有 200 个方法呢?改到吐。AOP 就是帮你把这种"横切"的逻辑抽出来,统一处理。
什么是 AOP,为什么需要它 # OOP 的核心是纵向的继承和封装,但有些逻辑是横向的——日志、事务、权限校验,跟具体业务没关系,但到处都要用。如果每个方法都写一遍,代码重复不说,后续改起来也要命。
JVM 垃圾回收看这篇就够了 # JVM 垃圾回收是面试八股文里的重头戏,也是我觉得最难啃的一块。概念多、算法多、收集器也多,第一次看的时候感觉脑子不够用。这篇把我学到的整理一下,尽量讲人话。
堆内存长什么样 # JVM 的堆分两大块:新生代(Young Generation)和老年代(Old Generation)。