自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DougLiang的博客

知识不像苹果,不会越分越少。

  • 博客(19)
  • 收藏
  • 关注

原创 什么是聚集索引和非聚集索引?

简单来说,聚集索引就是基于主键创建的索引,除了主键索引以外的其他索引,称为非聚集索引,也叫做二级索引。由于在InnoDB引擎里面,一张表的数据对应的物理文件本身就是按照B+树来组织的一种索引结构,而聚集索引就是按照每张表的主键来构建一颗B+树,然后叶子节点里面存储了这个表的每一行数据记录。所以基于InnoDB这样的特性,聚集索引并不仅仅是一种索引类型,还代表着一种数据的存储方式。同时也意味着每个表里面必须要有一个主键,如果没有主键,InnoDB会默认选择或者添加一个隐藏列作为主键索引来存储这个表的数

2024-10-24 19:05:12 233

原创 伪共享的概念以及避免的方法

伪共享的概念及避免方法

2024-09-05 09:02:34 568

原创 ”wait”和“notify”为什么要在Synchronized代码块里面?

wait和notify用来实现多线程之间的协调,wait表示让线程进入到阻塞状态,notify表示让阻塞的线程唤醒。

2024-09-05 08:59:00 793

原创 B+树详细解析

B+树是一种平衡多路查找树。

2024-09-02 18:40:02 2295

原创 分布式事务的实现方式之XA协议

XA协议是一种基于两阶段提交(Two-Phase Commit)的分布式事务协议,用于实现跨多个资源管理器(如数据库、消息队列等)的分布式事务一致性。

2024-09-02 18:37:57 592

原创 网络通信模型

IO和Redis网络通讯模型

2024-09-01 09:30:36 2261

原创 深度解读并发安全集合的原理及源码

本节主要介绍J.U.C包中的几种并发安全集合:ConcurrentHashMap,ConcurrentLinkedQueue,和ConcurrentLinkedDeque。所谓并发安全集合,相对于普通集合来说,能够保证在多线程环境下向集合中添加数据时的线程安全性。主要讲ConcurrentHashMap在实现线程安全性方面对性能和安全性的合理平衡。

2024-09-01 09:27:40 2560

原创 深度剖析阻塞队列的设计原理及实现

队列是一种基本的数据结构,它是一个只允许在一端进行移除操作,在另一边进行插入操作的线性表,允许插入的一端叫队尾,允许移除的一端成为队头。其实阻塞队列在队列的基础上增加了两个操作。支持阻塞插入:在队列满的情况下,会阻塞继续往队列中添加数据的线程,直到队列中有元素被释放。支持阻塞移除:在队列为空的情况下,会阻塞从队列中获取元素的线程,直到队列中添加了新的元素。

2024-08-31 10:49:59 1055

原创 J.U.C并发工具集实战及原理分析

在J.U.C里提供了很多的并发控制工具类,这些工具类可以使得线程按照业务的某种约束来执行。本节包含CountDownLatch、Semaphore、CyclicBarrier等工具类。目的是了解他们基本使用、原理及实际应用。

2024-08-31 10:46:58 853

原创 线程通信之等待机制

wait()/notify()

2024-08-30 09:04:10 1379

原创 并发编程不得不知的工具

ThreadLocal && Fork/Join

2024-08-30 08:58:49 987

原创 并发安全性之Lock锁及原理分析

ReentrantReadWriteLock锁有一个问题,如果当前有现成在调用get()方法,那么所有调用add()方法的线程必须等待调用get()方法的线程释放锁之后才能写,也就是说在读的过程中不允许写。而如果get的方法的线程比较多时,会导致写线程一直类阻塞。为解决ReentrantReadWriteLock中的这个潜在的问题,在java8中引入了StampedLock机制,即优化了读写锁的访问,简单的说就是提供了一种乐观锁策略,当有现成调用get方法读取数据时,不会阻塞准备执行写操作的线程。

2024-08-29 12:42:44 1128

原创 yum安装nexus3详细教程分享

yum安装nexus3详细教程分享

2024-08-29 10:42:24 950 1

原创 深度解析synchronized实现原理

深度解析synchronized实现原理

2024-08-28 10:42:47 895

原创 volatile为什么能解决可见性和有序性问题

volatile为什么能解决可见性和有序性问题

2024-08-28 10:32:13 1301 1

原创 Java线程的实践及原理揭秘

由于单个程序无法让CPU和I/O设备始终处于忙碌状态,所以操作系统允许同时加载多个程序到内存,也就是说可以同时启动多个进程,系统给这些进程分配独立的地址空间,以保证每个进程的地址不会相互干扰。即横向增加服务器,利用多个计算机组成分布式计算机,当然,整个系统的复杂性增加,比如涉及服务治理,服务监控,服务的高可用。线程是操作系统能够运算和调度的最小单元,一个进程可以创建多个线程,每个线程可以并行执行多个任务,并行执行的线程的数量是由CPU的核心数量来决定的。硬件的组成CPU,网卡,带宽,磁盘,内存。

2024-08-27 08:59:07 957

原创 MybatisPlusGenerator自定义模板生成文件

本文章按照MybatisPlusGenerator规范,并自定义模版生成对应的Controller,IService,ServiceImpl,Entity,Mapper,Mapper.xml。

2024-08-27 08:50:29 1377

原创 yum安装Jenkins

yum安装Jenkins

2024-08-26 14:41:02 786

原创 开源Gitea搭建全流程

gitea搭建全流程

2024-08-26 14:34:53 1073

Eclipse 工作流 activiti-designer离线安装包

1.内容包含了eclipse离线安装的activiti的离线安装包文件 2.现在的eclipse版本如果直接安装则可能出现错误,错误原因因为缺少了必要的jar包 3.内容里包含了离线安装时报错确实的jar包 4.离线安装教程可直接网上搜索即可

2024-08-27

空空如也

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

TA关注的人

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