- 博客(12)
- 收藏
- 关注
原创 GIT删除分支
打开git-bash1.删除本地分支git branch -d branch_name如果要删除的时当前使用的分支,则使用命令git branch -D branch_name2.删除远端分支git push origin --delete branch_name删除时会需要输入用户名和密码,校验通过即可删除...
2020-07-30 10:46:59
177
原创 Mysql查看锁定状态并解决锁定进程
标题查看造成死锁的语句show status like '%lock%'查看服务器锁状态show global status like '%lock%'查看当前锁表状态 In_use:表示表锁或锁请求数; Name_locked:表示表名是否被锁;show open tables where in_use >0 or name_locked >0 查看正在锁得事物select * from information_schema.innodb_locks;
2020-07-09 21:09:23
1273
原创 MVCC实现原理
MVCC的定义MVCC(Multi-Version Concurrency Control),就是多版本并发控制器。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。在Mysql的InnoDB引擎中就是指在已提交读(READ COMMITTD)和可重复读(REPEATABLE READ)这两种隔离级别下的事务对于SELECT操作会访问版本链中的记录的过程。这就使得别的事务可以修改这条记录,反正每次修改都会在版本链中记录。SELECT可以去版本链中拿记录,这就实现了读-写,
2020-05-20 13:12:11
409
原创 事务不生效的场景及原因
在spring项目中使用@Transactional注解标注的方法事务不生效,出现的场景原因可能有:数据库不支持事务事务生效的前提是你的数据源得支持事务,比如 mysql 的 MyISAM 引擎就不支持事务,而 Innodb 支持事务。注解放在了私有方法上简单来讲就是指非直接访问带注解标记的方法 B,而是通过类普通方法 A,然后由 A 访问 B。** * 非直接调用,不生效 * * @param id * @return * @throws Exception */@Transact
2020-05-09 10:01:14
4579
3
原创 redis存储值的极限是多少
keyWhat is the maximum number of keys a single Redis instance can hold? and what the max number of elements in a Hash, List, Set, Sorted Set?Redis can handle up to 2^32 keys, and was tested in pract...
2020-05-08 13:10:44
880
原创 设计模式
两种分类根据目的划分根据模式是用来完成什么工作来划分,这种方式可分为创建型模式、结构型模式和行为型模式 3 种。创建型模式用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。单例、原型、工厂方法、抽象工厂、建造者共五种模式。结构型模式用于描述如何将类或对象按某种布局组成更大的结构。代理、适配器、桥接、装饰、外观、享元、组合等七种模式。行为型模式用于描述类或对象之...
2020-05-07 11:31:15
161
原创 强引用、弱引用、软引用和虚引用
Java执行GC判断对象是否存活有两种方式其中一种是引用计数。引用计数:Java堆中每一个对象都有一个引用计数属性,引用每新增1次计数加1,引用每释放1次计数减1。在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于(reachable)可达状态,程序才能使用它。从JDK 1.2版本开始,对象的引用被划分为4种级别,从而使程序能更加灵...
2020-04-30 16:00:40
166
原创 堆的内存划分以及GC回收
堆的内存划分Java堆的内存划分如图所示,分别为年轻代、Old Memory(老年代)、Perm(永久代)。在jdk1.8中,永久代被移除,使用MetaSpace代替。新生代使用复制清除算法(Copying算法),原因是年轻代每次GC都要回收大部分对象。新生代里面分成一份较大的Eden空间和两份较小的Survivor空间。每次只使用Eden和其中一块Survicor空间,然后垃圾回收的时...
2020-04-30 11:49:51
674
原创 JMM Java内存模型
JMM Java内存模型Java的并发采用“共享内存"模型,线程之间通过读写内存的公共状态进行通讯,多个线程之间是不能通过直接传递数据交互的,它们之间的交互只能通过共享变量实现。主要目的是定义程序中各个变量的访问规则。Java内存模型规定所有变量都存储在主内存中,每个线程还有自己的工作内存。线程的工作内存中保存了该线程使用到的变量的拷贝(从主内存中拷贝过来),线程对变量的所有操作都必须...
2020-04-29 14:03:23
186
原创 jvm运行时数据区
Java虚拟机在执行Java程序的过程中,会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途、创建和销毁的时间,如图:程序计数器:指向当前线程正在执行的字节码指定。线程私有的。虚拟机栈:虚拟机栈是Java执行方法的内存模型。每个方法被执行的时候,都会创建一个栈帧,把栈帧压入栈,当方法正常返回或者抛出未捕获的异常时,栈帧就会出栈;栈帧:栈帧存储方法的相关信息,包含局部变量数...
2020-04-29 13:21:54
134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人