![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 88
Hansdas
研二DL狗,学Web中,祝大家都找得到工作
展开
-
【Java笔记】多线程:一些有关中断的理解
线程中断可以使一个线程从变成使用线程中断,并不是要把线程给终止或是杀死,而是让线程不再继续等待,而是让线程不再继续等待,线程可以继续往下执行代码,线程发生中断后,会抛出一个中断的异常,决定如何处理就看业务代码怎么写。原创 2024-05-07 14:10:36 · 843 阅读 · 0 评论 -
【Java】Flyway数据库管理工具的基本原理
最近实习做的几个项目都用到了Flyway来做数据库的版本管理,顺便了解了下基本原理,做个记录。详细的使用就不写了,网上教程很多。原创 2024-06-27 21:31:06 · 683 阅读 · 0 评论 -
【Java】CompletableFuture+Mockito单元测试不通过 Unnecessary stubbings detected
用的ForkJoinPool,会有一个线程1在后台异步执行updateNum的操作,因此猜测可能是当前test的线程0在异步过程中先结束了,导致线程0 Mock的stub并没有被线程1执行的待测试接口用到,导致。获取异步调用结果时,会阻塞当前线程直到异步操作结束返回。也就是说test的线程0不会提早结束,导致虚拟机栈中的stub在被线程1 调用之前被回收。既然Test的线程0结束的太早,那么强行让他多等一会是不是就好了?结果测试通过,证明之前的猜想应该是对的。mock的stub没被用到,然后测试不通过。原创 2024-07-05 11:22:56 · 319 阅读 · 0 评论 -
【Java】有关StampedLock的笔记+StampedLock的队列与AQS有什么区别
核心就是使用戳记(stamp)的方式来标记数据的版本,乐观读的时候就是对比stamp来保证线程安全,而获取锁的方法返回的stamp则是通过state属性位运算得到的。:在读的时候如果发生了写,应该通过重试的方式来获取新的值,而不应该阻塞写操作(乐观读,无锁编程,类似CAS的思想)如果在执行乐观读操作时,另外的线程对共享变量进行了写操作,则会把乐观读升级为悲观读锁,比如下面的。内部是基于CLH锁实现的,CLH是一种自旋锁,且是公平的(保证FIFO,不会有锁饥饿)的场景,它性能之所以比。:如果某个线程阻塞在。原创 2024-05-23 13:02:43 · 649 阅读 · 0 评论 -
【Java笔记】CAS比较的是什么+交换的是什么+自旋到啥时候
CAS(Compare And Swap )是乐观锁的一种实现方式,是一种轻量级锁,其实就是无锁实现,在不使用锁(没有线程被阻塞)的情况下实现多线程之间的变量同步。原创 2024-05-02 17:00:59 · 1046 阅读 · 0 评论 -
【Java】垃圾回收学习笔记(一):Root Search 根可达算法+垃圾回收的起点
最近上班地铁上偶尔看看书,周末有空理一下,做个笔记。原创 2024-07-07 13:12:52 · 662 阅读 · 0 评论 -
【Java笔记】多线程2: 加锁小练习(卖票+交替打印+哲学家就餐)
练习下Thread,Runnable,synchronized, Lock,稍微记录下。原创 2024-04-19 23:14:32 · 606 阅读 · 0 评论 -
【Java笔记】如何创建自己的注解+注解怎么用于反射+SpringBoot常见注解
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。注解就是我们平常看到的@开头的玩意儿,有时候加载方法上,有时候又会加在类、变量、参数上。别的注解没见过,那@Override总见过吧?这就是Java内置的注解之一。大概格式如下可以看到用了几个元注解:注解会在class字节码文件中存在,在运行时可以通过反射获取到;:注解可以加在函数方法上;:可有可无,希望加入javadoc就加上。我们也可以给注释绑定一些数据:其中,default可以指定默认值。原创 2024-04-21 12:40:24 · 795 阅读 · 0 评论 -
【Java笔记】多线程1:线程池大小为什么设置N+1或2N?CPU密集型?IO密集型?
需要注意的是,N是最大并行数,而不是“X核CPU”的X。一般我们会听到例如“4核8线程”的说法,这里的8就是N,虽然只有4个CPU(核心),但是可以利用超线程技术把原来CPU4个线程虚拟成8个。首先要明确,2N跟N+1都是经验值,大家能明白大概的逻辑就行。原创 2024-04-07 15:07:52 · 979 阅读 · 0 评论 -
【Java笔记】多线程0:JVM线程是用户态还是内核态?Java 线程与OS线程的联系
复盘一下Java中,JVM线程与实际操作系统中线程的一些联系原创 2024-04-04 17:53:31 · 1211 阅读 · 1 评论 -
【Java笔记】理解Java Memory Model+内存可见性+指令重排序
一些概念大杂烩。原创 2024-04-30 12:44:24 · 482 阅读 · 1 评论 -
【Java笔记】JVM:对象在内存中是什么样的?如何计算对象占用的内存大小?
Object类本身不含成员变量,所以instance data为0,两个header word总共位8+4=12B,Padding补齐为16字节。可以看出,由于String是另一个对象,Mycalss的instance data。openjdk jol提供了计算对象内存布局的方法,即。原创 2024-04-30 14:46:20 · 1171 阅读 · 2 评论 -
【Java笔记】Reflection的一个实践(模拟框架的服务管理与服务注入)
Java反射机制的一个实践案例,模拟框架的服务注册于注入原创 2024-03-29 10:01:49 · 1288 阅读 · 1 评论 -
【Java笔记】Lambda表达式
Lambda表达式是Java函数式编程的核心概念之一,是一种语法糖用于简化实现函数式接口Functional Interface。原创 2024-03-29 14:26:53 · 1883 阅读 · 1 评论 -
【Java笔记】实现延时队列1:JDK DelayQueue
JDKDelayQueue是一个无阻塞队列,底层是。原创 2024-03-30 19:28:38 · 385 阅读 · 0 评论 -
【Java笔记】Optional如何处理空指针异常 & 为什么不建议get()
Optional普遍用于方法的返回类型,表示方法可能不返回结果(即返回null)原创 2024-03-29 20:46:03 · 1168 阅读 · 1 评论 -
【Java笔记】类的静态初始化块
下面代中{}的内容就是初始化块初始化块会在类创建实例时自动执行,如果有多个初始化块则按顺序执行。原创 2024-03-28 14:56:49 · 158 阅读 · 1 评论 -
【Java笔记】Generics 泛型
一些Java Generics的学习笔记原创 2024-03-29 12:22:59 · 917 阅读 · 1 评论 -
【Java笔记】实现延时队列2:Redis
SETEXZSET。原创 2024-03-30 22:25:36 · 630 阅读 · 0 评论 -
【Java笔记】实现延时队列(小结):JDK DelayQueue&MQ&Redis
RabbitMQ中消息或队列具有一个属性,TTL(Time To Live),表明一条消息或者队列中的所有消息的最大存活时间// 设置队列的TTL// 设置每条消息的TTL如果同时配置了队列的TTL和消息的TTL,就用较小值如果设置队列的TTL:消息过期就会被队列遗弃如果设置消息的TTL:消息过期会在即将送给消费者时确定,不会马上丢弃不设置TTL:消息永不过期如果将TTL设置为0:如果不能马上给到消费者就会被丢弃稍微总结一下延迟队列主要用于xxx事件之后/之前,执行xxx。原创 2024-03-31 08:00:00 · 1115 阅读 · 1 评论