自定义博客皮肤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)
  • 收藏
  • 关注

原创 Mysql索引Innodb及底层存储结构B+树

索引是什么及工作机制?索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构。其工作机制如下图:上图中,如果现在有一条sql语句 select * from user where id = 40,如果没有索引的条件下,我们要找到这条记录,我们就需要在数据中进行全表扫描,匹配id = 13的数据。如果有了索引,我们就可以通过索引进行快速查找,如上图中,可以先在索引中通过id = 40进行二分查找,再根据定位到的地址取出对应的行数据。MySQL数据库为什么要使用B+TREE作为索引的数据结构?

2020-12-11 16:52:52 401 1

原创 源码分析 CurrentHashMap 1.8

1.CurrentHashMap 数据结构抛弃了 JDK 1.7 中原有的 Segment 分段锁,而采用了 CAS + synchronized 来保证并发安全性。2 将 JDK 1.7 中存放数据的 HashEntry 改为 Node,但作用是相同的。2 put方法final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) throw new NullPoi

2020-12-03 00:16:10 1333

原创 从源码角度学习理解ReentrantLock(重入锁)

一、ReentrantLock简介ReentrantLock重入锁,顾名思义,就是支持重入的锁,它表示能够支持一个线程对资源的重复加锁;Synchronized锁,它也是支持重入的一种锁,Synchronized支持隐式的重入锁,比如递归方法,在方法运行时,执行线程在获取到了锁之后仍能连续多次地获取锁;ReentrantLock虽然不能隐式重入,但是获取到锁的线程多次调用lock方法,不会阻塞进入同步队列;除此之外在获取锁时支持公平或者非公平的选择。AQS核心思想是,如果被请求的共享资源空闲,那么就将当

2020-12-02 23:06:18 113

原创 CopyOnWriteArrayList的底层源码学习

CopyOnWriteArrayList的底层源码学习ArrayList是常用的Java数据结构,不过在多线程环境下对ArrayList进行并发修改会造成很多意想不到的错误:并发导致数据丢失并发导致插入null并发导致数组越界ArrayList和CopyOnWriteArrayList对比ArrayList不是线程安全的类,在并发环境下需要使用线程安全的ArrayList进行修改操作,线程安全的ArrayList是CopyOnWriteArrayList,在CopyOnWriteArrayLi

2020-11-25 23:20:42 117

原创 进程的创建及常见方法的使用

进程和程序的区别?一. 什么是进程:1 .是一个正在执行的程序的实例2. 担当分配系统资源的实体(cpu时间,内存)3 进程信息被放在一进程控制块的数据结构中,这个进程控制块称为PCB,进程控制块的数据结构叫task_struct二。进程和程序的区别:(1)存储位置不同,程序在硬盘上,进程在内存里(2)进程除了拥有和程序一样的代码,还有PCB,进程比程序多了很多的数据结构(3)进程具有动态属性,即为可以有多种状态(4)程序没有堆栈因为程序被加载到内存中才会分配堆栈(5)进程的生命周期

2020-11-25 19:47:44 560

原创 HashMap底层源码(JDK1.8)

HashMap底层源码(JDK1.8)HashMap 根据键的 hashCode 值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap 最多只允许一条记录的键为 null ,允许多条记录的值为 null 。HashMap 非线程安全,即任一时刻可以有多个线程同时写 HashMap,可能会导致数据的不一致。如果需要满足线程安全,可以用 Collections的synchronizedMap 方法使 HashMap 具有线程安全的能力,或者使用Conc

2020-11-25 17:53:31 130

原创 ArrayList

ArrayList的学习简介ArrayList 是 java 集合框架中比较常用的数据结构了。继承自 AbstractList,实现了 List 接口。底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口,所以ArrayList 是支持快速访问、复制、序列化的。成员变量ArrayList 底层是基于数组来实现容量大小动态变化的。/**The size of the ArrayList (the nu

2020-11-16 08:54:21 120

空空如也

空空如也

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

TA关注的人

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