- 博客(8)
- 收藏
- 关注
原创 ConcurrentLinkedQueue详解(图文并茂)
是基于链接节点的无界线程安全队列。此队列按照FIFO(先进先出)原则对元素进行排序。队列的头部是队列中存在时间最长的元素,而队列的尾部则是最近添加的元素。新的元素总是被插入到队列的尾部,而队列的获取操作(例如poll或peek)则是从队列头部开始。与传统的LinkedList不同,使用了一种高效的非阻塞算法,被称为无锁编程(Lock-Free programming),它通过原子变量和CAS(Compare-And-Swap)操作来保证线程安全,而不是通过传统的锁机制。
2024-09-23 14:56:37
1015
原创 反问面试官3个ThreadLocal的问题
是并发编程中的强大工具,能够为每个线程提供独立的变量副本,避免线程安全问题。并且这个存入的值能够贯穿整个流程。使用时要注意上文的几点,防止造成内存溢出。
2024-09-23 14:55:29
784
原创 深入理解java的Synchronized底层原理-01重量级锁
synchronized是java中的一个关键字,用于多线程中。他的实现依赖于JVM的Monitor(监视器锁)以及对象头(Object header)当synchronized关键字修饰在方法或代码块上,会对对象进行加锁,从而保证同一时刻只有一个线程可以执行加锁了的代码块但是修饰方法和修饰代码块,底层的逻辑并不一样方法的常量池会增加一个ACC_SYNCORONIZED标识,当某个线程访问到这个方法会检测是否有这个标志,如果有则需要获得监视器锁才可以执行方法。
2024-09-23 14:54:53
1092
原创 Java微基准测试框架入门
在Java开发中,性能优化是一个持续的过程,它要求我们不仅理解代码的逻辑,还需要对代码的执行效率有深入的认识。为了有效地进行性能优化,我们需要一款能够准确度量代码执行时间的工具,而JMH正是这样一个强大的工具。Java JMH (Java Microbenchmark Harness) 是一个用于编写、执行和分析 Java 微基准测试的工具。它是由 Java 开发者基于 JVM 的实际情况设计的,能够帮助开发者准确地测量和分析 Java 代码的性能。为什么使用?
2024-09-21 15:13:53
978
原创 使用 CompletableFuture 最常见的错误(附实战代码)
未经允许禁止转载!本文将讨论 CompletableFuture 使用上的误区,内容涉及实战中代码重构。使用CompletableFuture最常见的错误就是使用过早使用 join,错误的使用方法还常常会出现很多所谓的技巧,比如 Effective Java 中并不推荐使用的双重检查锁,不仅容易出现bug,还影响代码的阅读。
2024-09-21 15:13:17
935
原创 Java23 ta来了,你发任你发,我用Java8
Java 23 来啦!和Java 22 一样,这也是一个非 LTS(长期支持)版本,Oracle 仅提供六个月的支持。下一个长期支持版是 Java25,预计明年 9 月份发布。JDK 23 提供了 12 项增强功能,这些增强功能的重要性足以保证他们自己的 JDK 增强提案 - JEP,包括 8 项预览功能和 1 项孵化器功能。它们涵盖了对 Java 语言、API、性能和 JDK 中包含的工具的改进。
2024-09-21 15:12:45
1201
原创 idea插件怎么调用databaseTool工具?
要引入databaseTool插件,主要的就是要将对应的idea类型改为IU无限制版,然后在引入对应的依赖,在获取psi元素的时候,收集所有DbTable对象,最后获取对应的需要的字段数据即可。
2024-09-07 15:11:28
793
原创 Springboot中jpa中一对多关系
在使用jpa持久化框架中,经常要建立关系表,jpa提供级联注解,这里说说其中的一对多@OneToMany和多对一@ManyToOne关系jpa中的一对多和多对一如果相对熟悉的话,可以推荐使用,但是一般在开发过程中,因人而异,大部分不会采用外键级联表,这种根据自己技术决定。
2024-09-05 15:06:27
1660
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅