自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JS控制文本框只支持输入字母、数字、下划线_、英文括号()

function checkLetter(obj){ obj.value = obj.value.replace(/[^\w()\.\/]/ig,''); }

2020-11-19 22:38:22 547

原创 Redis的持久化

RDB(Redis DataBase)1.RDB是什么?在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能...

2019-12-09 20:41:54 519

原创 简单说明为什么重写equals()时必须重写hashcode()方法

1,当我们用重写了equals()方法但是没有重写hashcode()的自定义对象作为hash表的key进行存储数据时,会因为hashcode()计算出的hash值不同(没有重写的hashcode()方法是根据内存地址进行计算hash值的)将两个相同的key(因为重写了equals()方法,所以对象的属性值相等既可以认为对象相同)存储在hash表内不同下标的位置上,也意味着新建出来的另一个相同对象...

2019-08-31 22:59:01 181

原创 MySQL意向锁的作用

当事务A用读锁锁住了一张表的某一行,让这一行只能读,不能写。此时,事务B申请整张表的写锁。如果事务B申请成功,那么理论上它就能修改表中的任意一行,这与A持有的行锁是冲突的。数据库需要避免这种冲突,就是说要让B的申请被阻塞,直到A释放了行锁。数据库要怎么判断这个冲突呢?step1:判断表是否已被其他事务用表锁锁表step2:判断表中的每一行是否已被行锁锁住。注意step2,判断表中每一...

2019-08-26 17:27:33 406

转载 深入理解AQS

AQS结构AQS的一些属性// 头结点,你直接把它当做 当前持有锁的线程 可能是最好理解的private transient volatile Node head;// 阻塞的尾节点,每个新的节点进来,都插入到最后,也就形成了一个链表private transient volatile Node tail;// 这个是最重要的,代表当前锁的状态,0代表没有被占用,大于 0 代表有线...

2019-08-13 11:32:46 223

原创 锁膨胀过程

锁膨胀过程 锁膨胀方向:无锁 —> 偏向锁 —> 轻量级锁 —> 重量级锁 注:我们之前经常会听到锁升级是不允许降级的,这指的是 ”偏向锁 —> 轻量级锁 —> 重量级锁“ 这个过程,不包括 ”无锁 —> 偏向锁 “,当然你也可以这么理解,无锁状态本身就没有锁,所以何来锁升级一说呢?1.从无锁到偏向锁一个对象刚开始实例化的时候,没有任何线程来访问它...

2019-08-12 15:47:26 178

空空如也

空空如也

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

TA关注的人

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