Java
文章平均质量分 78
winfield821
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java 的静态代理和动态代理
为什么用代理:实现非侵入式增强,符合开闭原则静态代理:需要接口,代码冗余,但性能好JDK动态代理:需要接口,运行时生成代理类CGLIB代理:不需要接口,通过继承实现,但不能代理final类/方法选择建议有接口且性能要求高 → JDK动态代理无接口 → CGLIB简单场景、代理类少 → 静态代理复杂场景、需要灵活配置 → 动态代理代理模式是 Spring、MyBatis 等主流框架的基石,理解代理模式对深入理解 Java 生态至关重要。原创 2025-12-18 23:44:11 · 588 阅读 · 0 评论 -
Java 中 new 一个对象的过程是怎么样的?
类加载(首次) → 分配堆内存 → 零值填充 → 设置对象头 → 执行<init>(父类构造+实例赋值+自定义逻辑) → 返回对象引用核心:JVM 先完成“内存层面的对象创建”,再通过构造方法完成“业务层面的初始化”;关键:只有执行完<init>,对象才是合法可用的,否则可能出现字段未初始化的异常。原创 2025-12-12 12:50:07 · 777 阅读 · 0 评论 -
Java String 中的字符串为什么是 final 的?
设计目标不可变的价值安全性避免敏感数据篡改、哈希表失效、类加载异常性能常量池复用、哈希值缓存、减少拷贝并发安全多线程读取无需同步,天然线程安全设计简洁方法返回新对象,逻辑清晰,避免状态管理的复杂度String的不可变设计是 Java 权衡“安全、性能、易用性”的最优解——牺牲了少量修改灵活性,换来了整个语言生态的稳定性和高效性。原创 2025-12-12 12:46:34 · 749 阅读 · 0 评论 -
synchronized 底层原理
特性描述锁住对象锁是关联在对象上的,通过对象头的 Mark Word 来标识。Monitor是实现互斥的核心机制,负责管理线程的排队和阻塞。锁升级无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁,根据竞争激烈程度动态调整,兼顾了无竞争和高竞争场景下的性能。现代性能在低竞争场景下,的性能与相差无几,因其是 JVM 内置特性,推荐优先使用。原创 2025-11-26 13:46:10 · 585 阅读 · 0 评论 -
Java 并发编程代码示例
Java 并发编程的核心是。原创 2025-11-20 22:38:31 · 260 阅读 · 0 评论 -
Spring 框架的 MethodInterceptor 简介
是CGLIB库(Code Generation Library)中的一个接口,用于拦截方法的调用。来创建一个代理对象,将该代理对象应用于目标对象,从而在目标对象的方法调用时触发拦截器中的逻辑。提供了强大的方法拦截和增强能力,常用于创建AOP代理,执行事务管理、性能监控、安全性检查等。接口来创建一个自定义的方法拦截器,并在其中定义希望在方法调用前后执行的逻辑。,该方法在代理对象的方法被调用时被触发。以下是一个简单的示例,演示了如何使用CGLIB的。方法中,可以在方法调用前后添加自定义逻辑。原创 2023-09-18 21:31:07 · 1718 阅读 · 0 评论
分享