
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
JVM(Java 虚拟机)在运行 Java 程序时,会将内存划分为五个核心功能区域,每个区域有明确的职责、生命周期和存储规则,其设计核心是高效管理内存、支撑程序的正常执行,同时为垃圾回收(GC)、多线程调度等核心机制提供基础。本文将详细拆解这五大区域的特性、作用及常见问题。线程归属:堆、方法区为线程共享区域,程序计数器、虚拟机栈、本地方法栈为线程私有区域;异常特性:仅程序计数器不会抛出 OOM,其
坑1:使用IoUtil时,忘记关闭流,导致资源泄漏。避坑:无论流操作是否成功,都要在finally块中调用IoUtil.close()关闭所有流,建议一次性传入所有流对象。坑2:使用FileUtil时,路径格式错误(如Windows路径用/,Linux路径用\),导致操作失败。避坑:尽量使用标准路径格式,或使用FileUtil的path方法自动适配系统路径。坑3:使用IoUtil.copy()时,
每个service对应一个或多个容器。services:nginx:ports:- "80:80"services:backend:build: ./backend # 指定 Dockerfile 目录# build:# context: ./backend # 构建上下文# dockerfile: Dockerfile.prod # 指定 Dockerfileimage: myapp:lates
阶段操作对应原理核心认知Jenkins 是自动化调度引擎通过插件扩展能力初始化Docker 部署 + 临时密码 + 推荐插件第一道安全门 + 定义能力边界凭证管理添加 Git/Docker Hub/SSH 凭证安全集中管理敏感信息Pipeline创建 Jenkinsfile触发器WebhookGit 事件回调 Jenkins构建流程流水线定义做什么后置通知post 块配置邮件构建完成收尾。
new出来(空的)↓填依赖(@Autowired生效)↓告诉我你是谁(Aware)↓初始化前(BeanPostProcessor ✋)↓@PostConstruct → 准备资源afterPropertiesSet → 检查配置init-method → 加载缓存↓初始化后(AOP代理就在这里!🤖)↓=== 可以用了!调业务方法 ===↓容器关闭 → @PreDestroy → destroy

六大类 + 一条主线:组件注册:@Component 家族 → 谁管容器依赖注入:@Autowired → 怎么装配Web 层:@RestController 家族 → 怎么暴露接口配置属性:@Value / @ConfigurationProperties → 怎么读配置条件控制:@Conditional / @Profile → 什么时候生效AOP/事务:@Transactional / @A

自动配置 = Spring Boot 提前写好的 @Bean 配置类,按需生效,无需手动注册。自动配置是 Spring Boot 实现「约定大于配置(Convention over Configuration)」的核心机制。// 1. 自动配置类@Bean// 2. 配置属性// 3. 注册自动配置。

Spring Security 本质上是一个过滤器链每个请求进来后,像流水线上的产品一样,逐个经过每个过滤器。只要有一个过滤器决定「这个请求不合法」,请求就到此为止。请求 → Filter1 → Filter2 → Filter3 → ... → Controller过滤器顺序决定异常归宿:自定义过滤器放在后面,抛出的认证异常才能被统一捕获;放在前面,异常直接冲到 Tomcat 返回 500。

SQL 类型回滚操作原理INSERTDELETE把插入的行删掉DELETEINSERT用前镜像把删掉的行插回去UPDATEUPDATE用前镜像把值恢复回去。

实际项目中的模板通常是:堆设物理内存的 60-70%,保留一部分给元空间和系统,G1 设目标停顿 200ms。话术:永久代是 JDK 7 及之前的方案,在堆内存里划了一块固定大小,类多了容易 OOM。JDK 8 改成了元空间,用的是本地内存(堆外),默认只受物理内存限制,不会轻易 OOM。话术:先做监控再调优。第一步是加 GC 日志参数,用 jstat 看 GC 频率和耗时,jmap 看堆使用情况








