SpringBoot事务注解@Transactional(转载) 看到的一篇讲的比较详细的,放在这里https://blog.csdn.net/wkl305268748/article/details/77619367?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task...
Mybatis源码解析优秀博文汇总 最近阅读了许久的mybatis源码,小有所悟。同时也发现网上有许多优秀的mybatis源码讲解博文。本人打算把自己阅读过的、觉得不错的一些博文列出来。以此进一步加深对mybatis框架的理解。其实还有一个目的是,本人也想写一系列博文来分享自己对mybatis的理解。然而。个人文笔太差,列出的这些别人的文章我也会细心研读,并希望在阅读这些文章的同时既加深我对mybatis的理解,又能探索出一种更加通...
MySQL5.7创建用户并授权 MySQL 5.7版本的user表中已经没有了password字段,取而代之的是 authentication_string,同时user表中还有一些没有默认值的字段,如果还通过insert的方式插入新用户,会很麻烦。在网上找到一篇写的挺好的,转载到这里。一. 创建用户命令:CREATEUSER'username'@'host'IDENTIFIEDBY'password';...
最长公共子序列 看了很多相关文章,把觉得好的放在这里,方便以后查看,文章1:简洁文章2:全面 文章1: https://www.cnblogs.com/en-heng/p/3963803.html文章2:https://blog.csdn.net/wangdd_199326/article/details/76464333...
MySQL InnoDB锁机制之Gap Lock、Next-Key Lock、Record Lock解析 MySQL InnoDB支持三种行锁定方式:l 行锁(Record Lock):锁直接加在索引记录上面,锁住的是key。l 间隙锁(Gap Lock):锁定索引记录间隙,确保索引记录的间隙不变。间隙锁是针对事务隔离级别为可重复读或以上级别而已的。l Next-Key Lock :行锁和间隙锁组合起来就叫Next-Key Lock。 默认情况下,InnoDB工作在可重...
页面置换算法--LFU算法实现-O(1)时间复杂度 eetcode题目地址https://leetcode.com/problems/lfu-cache/?tab=Description题目描述Design and implement a data structure for Least Frequently Used (LFU) cache. It should support the following operations: ge...
源码阅读:全方位讲解LongAdder 原文地址:https://blog.csdn.net/zqz_zqz/article/details/70665941高并发下计数功能最好的数据结构就是LongAdder与DoubleAdder,低并发下效率也非常优秀,这是我见过的java并发包中设计的最为巧妙的类,从软硬件方面将java并发累加操作优化到了极致,所以应该我们应该弄清楚它的每一行代码为什么要这样做,它俩的实现大同小异,下面以L...
transient关键字 原文地址:https://blog.csdn.net/u013207877/article/details/525729751,transient的用途及使用方法1,用途 我们知道,当一个对象实现了Serilizable接口,这个对象就可以被序列化,我们不关心其内在的原理,只需要了解这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。而在开发过程中,我们可能...
一个Sqrt函数引发的血案 我们平时经常会有一些数据运算的操作,需要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是如何实现的?就拿最常用的sqrt函数来说吧,系统怎么来实现这个经常调用的函数呢?虽然有可能你平时没有想过这个问题,不过正所谓是“临阵磨枪,不快也光”,你“眉头一皱,计上心来”,这个不是太简单了嘛,用二分的方法,在一个区间中,每次拿中间数的平方来试验,如果大了,就再试左区间的中间数;...
ThreadPoolExecutor线程池及线程扩展策略 一、概述 1、ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务; 2、Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机制。 3、先来了解其线程池管理的机制,有助于正确使用,避免错误使用导致严重故障。同时可以根据自己的需求实现自己的线程池 二、核心构造...
数据库索引以及优化 是看到的关于数据库索引以及优化的比较好的文章汇总,会慢慢更新,碰到了就搬运过来:讲解索引的原理和作用:https://www.cnblogs.com/aspwebchh/p/6652855.html讲解利用联合索引对非聚集索引的优化问题:https://www.cnblogs.com/aspwebchh/p/8383532.html#4014903...
平衡二叉树(AVL树)深入解读 平衡二叉树又称AVL树性质:它或者是颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。 若将二叉树节点的平衡因子BF定义为该节点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有节点的平衡因子只可能为-1,0,1. 只要二叉树上有一个节点的平衡因子的绝对值大于1,那么这颗平衡二叉树就失去了平衡。 根据上述性质我...
倒排索引原理和实现 关于倒排索引搜索引擎通常检索的场景是:给定几个关键词,找出包含关键词的文档。怎么快速找到包含某个关键词的文档就成为搜索的关键。这里我们借助单词——文档矩阵模型,通过这个模型我们可以很方便知道某篇文档包含哪些关键词,某个关键词被哪些文档所包含。单词-文档矩阵的具体数据结构可以是倒排索引、签名文件、后缀树等。倒排索引源于实际应用中需要根据属性的值来查找记录,lucene是基于倒排索引实现...
Linux虚拟地址空间布局以及进程栈和线程栈总结 本文转自多个博客 一:Linux虚拟地址空间布局(转自:Linux虚拟地址空间布局) 在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中。这个沙盘就是虚拟地址空间(Virtual Address Space),在32位模式下它是一个4GB的内存地址块。在Linux系统中, 内核进程和用户进程所占的虚拟内存比例是1:3,而Windows系统为2:2(通过设置Large-A...
java集合类深入分析TreeMap/TreeSet 简介 TreeMap和TreeSet算是java集合类里面比较有难度的数据结构。和普通的HashMap不一样,普通的HashMap元素存取的时间复杂度一般是O(1)的范围。而TreeMap内部对元素的操作复杂度为O(logn)。虽然在元素的存取方面TreeMap并不占优,但是它内部的元素都是排序的,当需要查找某些元素以及顺序输出元素的时候它能够带来比较理想的结果。可以说,TreeM...
Java内部类详解 内部类说简单能很简单,但是刨根到底彻底搞明白又很难。在看了一些书籍和很多博客之后,觉得下面两篇最好。https://blog.csdn.net/u014344668/article/details/72547986第二篇最出彩的地方是将为什么局部内部类和匿名内部类只能访问局部final变量这个问题讲的最清楚的一个。之前自己想了很久,看到这里才恍然大悟,其实就从final下手就行。htt...