自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中的CAS算法 乐观锁相关

CAS算法多用于乐观锁的实现。它的实现逻辑是将预期值(Expected)与当前值(Var)进行比较,只有当二者相等时,才用新值(New)更新当前值。若当前线程执行失败,该线程不会被挂起,而是允许其继续尝试直至成功(自旋),也允许其主动放弃操作。注意CAS算法是一个原子操作,即时一个不可拆分的最小操作。

2024-01-01 15:39:11 378 1

原创 Java 4种设计模式

主要用于接口互不兼容的类的协调工作。联想:电源适配器。相关内容:适配者(Adaptee):被适配的对象或类;适配器(Adapter):作用域适配者的对象或类。对象适配器:利用组合关系来实现类适配器:利用继承关系来实现工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需指定创建对象的具体类。工厂模式通过将实际创建对象的细节推迟到子类或工厂类中,以实现对代码的解耦合和更好的扩展性。

2023-12-31 21:23:42 339 1

原创 ThreadLocal的使用以及底层原理

​​​if (map!= null) {可以发现,当调用ThreadLocal类中的方法时,首先都需要获取当前Thread t,然后再获取t的ThreadLocalMap map,最后通过操作该map实现一系列操作。并且ThreadLocal类中存在一个内部类。

2023-12-30 12:12:51 439 1

原创 归并排序 vs 快速排序 含Java算法实现

对 n 个元素进行归并排序所需要的时间是T(n),那分解成两个子数组排序的时间都是 T(\frac{n}{2}),而合并两个子数组的时间复杂度为O(n)。若每一次找到的pivot都在待排序区间的边界上,则需要进行n次分区才能完成排序。若每次排序都能够将数据分成相等的两部分,则时间复杂度也为O(nlogn)可以求得T(n) = n*C + n\log_{2}(n)快排:不稳定,最优为O(nlogn),最坏为O(n^2)归并:非原地算法,借助于临时数组,为O(n)归并:复杂度稳定,为O(nlogn)

2023-12-20 16:38:32 830 1

原创 进程 vs 线程

数据之间的相互制约包括: 1、直接制约关系,即一个线程的处理结果,为另一个线程的输入,因此线程之间直接制约着,这种关系可以称之为同步关系 2、间接制约关系,即两个线程需要访问同一资源,该资源在同一时刻只能被一个线程访问,这种关系称之为线程间对资源的互斥访问,某种意义上说互斥是一种制约关系更小的同步。信号量 信号量的用法和互斥的用法很相似,不同的是它可以同一时刻允许多个线程访问同一个资源,PV操作 PS: 事件可以完美解决线程间的同步问题,同时信号量也属于内核对象,可用于进程间的通信。

2023-12-18 12:00:23 830 1

原创 MySQL vs Redis

Redis的单线程:指对命令的执行时单线程的,即对外提供的键值存储服务的主要流程。由于Redis的命令执行是单线程的,因此使用耗时较长的命令时需小心,否则容易造成Redis的阻塞。Redis:为了提高使用频繁的数据的读取速度,会将这部分数据存储到内存中,也就是缓存中。但是一般存储在Redis中的数据是有有限时间的,当有效期过了之后,数据失效。且一般存储在Redis中的数据是有有效时间的,当过了有效时间后,数据会被删除。因为Redis所有的数据都存储在内存中,所有的运算都是内存级别的;

2023-12-17 14:44:45 366 1

原创 Lombok注解整理一览

用于简化在方法中抛出受检异常(ckecked exception)时的异常处理代码,而无需显式地在方法签名中声明或捕获这些异常。注意:Java在编译阶段,会自动为没有构造器的类自动生成一个无参构造器。作用:生成带参构造器。为所有未初始化的final字段以及标有@NonNull注解的字段生成构造器。1. 成员变量:生成该成员变量的getter/setter方法。2. 类:生成所有成员变量的getter/setter方法。作用:用于生成实体类的getter/setter方法。作用:生成无参构造器。

2023-12-10 12:46:23 429 1

原创 Java 数组排序 Arrays.sort()使用 一维排序 二维排序

【代码】Java 数组排序 Arrays.sort()使用 一维排序 二维排序。

2023-12-08 21:31:21 516

原创 Java | Queue、ArrayDeque<>()、PriorityQueue<>()、LinkedList<>()

Queue是一个接口,而不是类。

2023-10-15 14:49:04 31 1

空空如也

空空如也

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

TA关注的人

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