随笔分类 - Java
1
摘要:
Java中的CAS原理是什么?它有什么优缺点?什么是ABA问题?如何解决?
阅读全文

摘要:
Java中Synchronized锁升级通过偏向锁、轻量级锁到重量级锁的动态转变,优化了多线程同步性能。偏向锁减少无竞争场景的开销,轻量级锁借助CAS与自旋优化低竞争环境,重量级锁确保高竞争下的互斥性。合理设计并发模型,监控锁状态并结合其他并发工具以充分利用锁升级优势。
阅读全文

摘要:
让我们来争论一下:金额到底是用Long还是BigDecimal?
阅读全文

摘要:
`synchronized`作为Java并发编程的基础构建块,其简洁易用的语法形式背后蕴含着复杂的底层实现原理和技术细节。深入理解`synchronized`的运行机制,不仅有助于我们更好地利用这一特性编写出高效且安全的并发程序。
阅读全文

摘要:
熟练运用Lambda表达式能够显著提升代码质量与开发效率,使得代码逻辑更加简明扼要,同时也增强了程序的可读性与维护性。不断学习和实践这些技巧,你的开发效率必将迎来质的飞跃
阅读全文

摘要:
本文主要讲述Java中各类锁机制的特点,包括重入锁、悲观/乐观锁、偏向/轻量级/重量级锁、分段锁和自旋锁,阐述其优缺点及一些适用场景。
阅读全文

摘要:
ThreadLocal为各线程提供独立变量副本以实现数据隔离。内部采用ThreadLocalMap关联弱引用键与强引用值,易引发内存泄漏,需适时调用remove方法避免。
阅读全文

摘要:
Java四种引用类型:强、软、弱、虚。它们的作用和使用场景各不相同,能够满足不同的内存管理需求。
阅读全文

摘要:
3月19日,Java22重磅发布。Java22新增了12项增强功能,其中包括七个预览特性和一个孵化器特性,这些功能都显著到足以引起JDK增强提案(JEPs)的关注。它们涵盖了Java语言、其API、性能以及JDK中包含的工具的改进。
阅读全文

摘要:
本文深入探讨了Java 8引入的全新日期时间API相较于传统的Date和Calendar类的优势及实际应用。鉴于Java 8新日期时间API在设计上的先进性和易用性,我们强烈建议开发者积极采纳并替换掉陈旧的Date和Calendar类,转而采用如LocalDate、LocalDateTime、ZonedDateTime等现代日期时间类。
阅读全文

摘要:
在Java多线程编程中,正确且安全地停止线程是一项关键技能。简单粗暴地“杀死”线程不仅可能导致数据不一致性,还可能引发各种难以预测的错误。
阅读全文

摘要:
什么是死锁?死锁问题该如何定位?如何避免死锁?本文从这几个问题入手,详细的解释了死锁。
阅读全文

摘要:
Integer缓存机制是Java中的一项性能优化措施,通过缓存一定范围内的整数对象,减小内存开销,提高性能
阅读全文

摘要:
MapStruct是Java编译时生成对象映射代码的工具,通过注解简化Bean间的转换。它自动创建映射接口实现,提高效率与性能,优于手动或运行时反射映射,并支持自定义逻辑配置,适用于多种框架,提升开发和维护体验。
阅读全文

摘要:
Pair和Triple类是commons-lang3库提供的实用工具,可以方便地将多个值组合在一起,实现多个返回值的效果,提高了代码的可读性和可维护性,使得处理多值情景更加轻松。
阅读全文

摘要:
NullPointerException是Java编程中的常见问题,源自对象引用为空时的操作。我们可以使用进行非空检查、使用Optional类以及采用Null安全注解以及使用检查工具等方式避免
阅读全文

摘要:
Retrofit是一个基于OkHttp的高效网络库,通过将HTTP请求转化为接口调用,极大地简化了Java应用与RESTful API的交互。它利用注解定义API、处理同步异步请求,并自动完成JSON数据转换。此外,Retrofit具备高度扩展性,可集成RxJava等库应对复杂网络场景。
阅读全文

摘要:
本文深入介绍了Java 8的Stream API,包括创建、中间操作、终端操作等,强调了并行流在大数据处理中的性能提升。提供清晰实用的示例,为读者理解流式计算提供有益指导。
阅读全文

摘要:
Java线程池是多线程编程中的重要工具,能够有效管理和复用线程,提高系统性能和资源利用率。本文深入探讨了线程池的基础概念、工作原理、参数配置、自定义以及使用示例,并强调了注意事项。
阅读全文

摘要:
优化庞大if-else语句的多种方法,包括提前return、枚举、Optional、表驱动、策略模式+工厂模式、规则引擎等,强调选择最适合项目的方案,提高代码清晰性、灵活性和维护性。
阅读全文

1