自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Sychronized和ReentrantLock的区别

2.sychronized会自动的加锁与释放锁,ReentrantLock需要程序员手动加锁与释放锁。3.sychronized的底层是JVM层面的锁,ReentrantLock是API层面的锁。1. sychronized是一个关键字,ReentrantLock是一。4.sychronized是非公平锁,ReentrantLock可以选。5.sychronized锁的是对象,锁信息保存在对象头。6.sychronized底层有一个锁升级的过程。

2024-08-15 20:05:39 120

原创 Java死锁如何避免?

锁,只需要不满足其中某一个条件即可。2.要注意加锁时限,可以针对所设置一个超时时间。2.一个线程在阻塞等待某个资源时,不释放已占有。3.一个线程已经获得的资源,在未使用完之前,不。这是造成死锁必须要达到的4个条件,如果要避免死。条件是作为锁要符合的条件,所以要避免死锁就需要。1.要注意加锁顺序,保证每个线程按同样的顺序进。3.要注意死锁检查,这是一种预防机制,确保在第。4.若干线程形成头尾相接的循环等待资源关系。打破第4个条件,不出现循环等待锁的关系。1.一个资源每次只能被一个线程使用。

2024-08-14 19:24:53 118

原创 jvm有哪些垃圾回收算法?

2.复制算法,为了解决第一种内存碎片问题,于是有了复制算法,将内存分为两块大小相等的内存,每次只是用其中的一块,垃圾回收时,将当前这一块的活对象拷贝到另一块中,然后将之前那一块清除,从而解决了内存碎片问题。但是这种算法又出现了一个新的问题,内存占用。1.标记清除算法,分为先标记,将垃圾标记出来,再清除,将标记的垃圾进行清除,但是这种算法会造成一个严重的问题,会产生大量的内存碎片。3.标记压缩算法,为了解决第二种的内存占用问题。首先将垃圾进行标记,然后将活对象往一端进行对齐,并有边界,将边界以外的进行清除。

2024-08-13 16:34:20 235

原创 Java中创建线程的方法(精简)

1.通过继承Thread类,但是要注意的是Java中类与类之间只能单继承,其底层也是实现了第二种的Runnable接口。2.通过实现Runnable接口,接口可以多实现。可以说是一种,也可以说是四种,也可以说是五种。5.通过匿名函数,lambda表达式进行创建。3.实现Callable接口。4.通过线程池进行创建线程。

2024-08-13 12:14:51 373

原创 关于缓存的击穿、雪崩、穿透

击穿:形象过程为当一个key过于火爆,很多用户同时查找这个key,造成高并发的同时这个缓存如果瞬间失效,导致大量业务进入数据库进行查询,造成性能差等一些问题。雪崩:在第一个的基础上,是多个key在同一时间缓存失效,或者缓存服务器挂了,导致大量业务进入数据库进行操作,导致数据库压力过大,挂了。穿透:大量操作在缓存中没有数据,数据库中也没有数据,类似恶意请求,导致性能过差,数据库压力大等。解决方法:1.设置缓存时间永不过期 2.加锁排队,使其由并行成为串行。

2024-08-13 12:04:24 682

原创 spring bean的生命周期(精简)

1.实例化2.属性赋值3.初始化4.使用5.销毁。

2024-08-13 11:54:27 86

原创 springBoot启动流程(精简)

2.加载配置文件 application.yml等。1.加载启动类 application.java。5.运行springBoot应用程序。4.加载自动装配 bean等。3.创建spring容器。

2024-08-13 11:52:18 99

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除