自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL的锁机制

MySQL的隔离性是由锁机制来保证的。锁是计算机协调多个进程或线程并发地访问某一资源你的机制。当多线程并发地访问某个数据时,尤其是在涉及金钱等安全敏感性数据的时候,需要保证数据在任意时刻最多只有一个线程可以对其进行修改,从而保证数据的一致性和完整性。

2023-12-10 11:01:31 100

原创 Mysql的事务日志

undo log:是存储引擎(innodb)生成的日志,记录的是逻辑操作日志。redo log:是存储引擎(innodb)生成的日志,记录的是物理级别上的页修改操作,比如页号XXX、偏移量yyy写入了‘zzz’数据。主要是为了保证数据的可靠性。- redo log是重做日志,提供再写入操作,恢复提交事务修改的页操纵,用来保证事务的持久性。- undo log是回滚日志,回滚记录到某个特定的版本,保证事务的原子性和一致性。事务的原子性、一致性、持久性则由redo log和Undo log来保证。

2023-12-06 17:57:38 190

原创 Mysql的索引详解

1.按照功能来分,可以分为主键索引、唯一索引、普通索引、全文索引2.按照索引字段个数来分,可以分为单列索引、联合索引3.按照物理实现方式来分,可以聚簇索引、非聚簇索引。

2023-12-03 19:07:28 194

原创 Mysql行格式(记录格式)详解

Mysql行格式(记录格式)详解

2023-12-02 15:18:58 157

原创 PostgreSql入门教程

pg入门安装以及基本操作

2023-11-30 11:46:30 70

原创 Mysql的页结构详解

Mysql的页结构详解

2023-11-27 23:37:56 353

原创 AQS详解

AQS详解

2023-09-28 16:06:13 46

原创 synchronized与锁升级

synchronized与锁升级

2023-09-20 13:19:52 42

原创 Java对象内存布局

Java对象内存布局和对象头

2023-09-19 17:24:49 49

原创 ThreadLocal详解

ThreadLocal详解

2023-09-19 00:58:03 40

原创 Java原子类示例以及详解

Java原子操作类及18罗汉增强。

2023-09-18 20:26:37 29

原创 Java中CAS及常用类详解

Java中CAS及常用原子类详解

2023-09-18 14:31:26 118

原创 Java内存模型JMM

Java内存模型JMM

2023-09-17 01:59:45 41

原创 LockSupport与线程中断

LockSupport与线程中断

2023-09-16 14:23:12 35

原创 死锁以及排查方法

死锁以及排查方法

2023-09-15 23:57:30 36

原创 Java可重入锁synchronized以及ReentrantLock详解

Java可重入锁,synchronized以及ReentrantLock的原理解析

2023-09-15 23:08:59 215

原创 Java公平锁和非公平锁

2.使用多线程时,很重要的考虑点是线程切换的开销,当采用非公平锁时,当一个线程请求锁获取同步状态,然后释放同步状态,刚刚释放锁的线程在此刻再次获得同步状态的概率非常大,让同一个线程多次获取以及释放锁,可以减少线程来回切换的开销。1.从恢复挂起的线程到获取锁需要一定的时间,从cpu的角度来看,这个时间还是明显的,所以非公平锁能更有效的利用cpu的时间片,尽量减少cpu的空闲时间。三个线程基本轮流操作资源。基本线程一直在操作资源。

2023-09-15 18:54:20 32

原创 多线程之synchronized字节码分析

多线程之synchronized字节码分析

2023-09-15 18:25:08 27

原创 Java锁知识介绍

Java常见锁知识解析

2023-09-15 16:55:55 31

原创 CompletableFuture详解

Completable详解

2023-09-14 20:44:51 89

原创 Future接口详解

Future接口详解

2023-09-14 16:03:06 68 1

原创 线程生命周期

线程生命周期如下图

2023-09-13 16:13:58 29

原创 解决每次挂起VM虚拟机后,docker容器无法访问的问题

解决每次挂起VM虚拟机后,docker容器无法访问的问题

2022-11-30 23:16:01 1952 3

原创 在虚拟机docker启动mysql但是宿主机无法访问的问题

docker创建Mysql无法访问的问题

2022-11-29 23:55:24 2034

原创 启动nacos集群无证正常启动的问题排查

nacos启动报错的解决

2022-11-16 22:46:21 604 1

原创 关于explain执行mysql语句,索引key_len计算问题

今天验证sql查询语句走了哪些索引的时候,发现key_len怎么也算不对。因为在网上找的文章对于kye_len的计算基本千篇一律,如下:varchar(10)变长字段且允许NULL = 10 * ( character set:utf8=3,gbk=2,latin1=1) + 1(NULL) + 2(变长字段)varchar(10)变长字段且不允许NULL = 10 *( character set:utf8=3,gbk=2,latin1=1) + 2(变长字段)char(10)固定字段且允许NULL =

2022-06-29 23:34:30 195

原创 一次线上bug记录

线上bug记录

2022-06-23 22:12:00 218

原创 记一次使用mybatis,Mapper接口和mapper.xml文件无法绑定的问题

mapper与xml文件无法绑定的异常

2022-06-20 23:18:29 2483

原创 Java Stream API学习随笔

Stream的创建方式大体为四种1.Collection.stream()/Collection.parallelSteam(); List<User> userList = Arrays.asList( new User("zs", 23, "bj"), new User("zs1", 23, "bj"), new User("zs3", 23, "bj"), n

2021-11-14 23:23:46 487

原创 ApplicationEvent和ApplicationListener学习

ApplicationEvent和ApplicationListener学习今日看项目看到了ApplicationEvent抽象类和ApplicationListener接口,之前没有使用过,因此学习了一下。ApplicationEvent抽象类表示的是某一类事件,比如网站注册的时候,用户注册可以作为一个事件。public class UserRegistrationEvent extends ApplicationEvent { private User user; public

2021-11-10 22:37:06 96

原创 记录关于@RequestParam注解的required=false参数遇到的问题

今天使用@RequestParam注解的required=false参数遇到了一个小bug,代码如下:@Controller@RequestMapping(value = {"/test"})public class MyController { @RequestMapping(value = "/some.do",method = {RequestMethod.POST,RequestMethod.GET}) public ModelAndView doSome(@RequestPa

2021-06-26 11:38:06 9627 2

原创 nginx的负载均衡以及动静分离

Nginx的负载均衡以及动静分离Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其两个主要的功能就是静态解析和反向代理。静态解析的意思是Nginx可以解析静态资源,如css/js/img…等等,但是Nginx无法解析动态资源。关于反向代理,这个名词初听感觉很奇怪,其实反向代理是相对正向代理而言的。举个例子(来源于其他博客):小王(客户端)创业缺钱,想找马云(服务端)借钱,但是马云不认识他所以不会借钱给小王,但是小王的大学老师(正向代理)是马云的同学,于是小王找大学老师帮忙,

2020-09-26 00:02:25 213

原创 Failed to execute goal com.spotify:docker-maven-plugin:1.0.0:build (build-im

将项目制作成docker镜像的时候报错,原因是Dockerfile中项目jar包名称与实际项目的GAV不一致。比如我实际项目的是1.0.0,但是Dockerfile写成了1.0。所以报错,将1.0.0改成1.0即可。

2020-09-25 20:23:36 5286 1

原创 mysql的隔离级别以及悲观锁和乐观锁

隔离级别Read-Uncommitted(读未提交):会产生脏读的问题.比如事务A增加了一条数据,此时事务B正好读到了这笔数据,但是在事务B读到数据之后,事务A发生了异常,数据回滚了,那么最终这条数据是没有写入数据库的.而事务B读到了数据库不存在的数据,这就称之为:脏读.ps:新手的困惑解答,我个人当时对于上面的描述觉得很困惑的一点就是:为什么事务B能读到事务A未提交的数据,未提交不是没写进数据库吗?其实是这样的,提交是指事务整体的提交,一个事务通常包括多步对数据库的操作,举个例子:有一张学生表,字

2020-09-15 12:28:25 168

原创 前端图形验证码小结

概述: 四位的图形验证码,由阿拉伯数字及大小写字母组成前端代码:js文件:$(function () { //验证码的点击刷新 $("#imgCode").click(function () { this.src = basePath + "/loan/jcaptcha/captcha?time=" + Date.now(); });});html文件<div class="login-yzm"> <div id=

2020-09-14 10:19:56 682

原创 thymeleaf中数字的日期格式以及货币格式

日期格式:th:text="|最近登录:${#dates.format(loginUser.lastLoginTime,'yyyy-MM-dd HH:mm:ss')}|" 效果:全是数字,不会出现英文格式或者时间戳货币格式:th:text="${#numbers.formatCurrency(session.availableMoney)} 效果: 888,888,888 三位一个逗号...

2020-09-11 22:14:53 422

原创 关于使用thymeleaf模板时,接收参数时的易错点

后台的数据通过Model对象传递model.addAttribute(totalBidMoney,totalBidMoney);接收参数:`<span id="avg" th:text="${totalBidMoney}">13.8</span>`直接在${}中填写对应的key值即可获取Value后台的数据存在session作用域中session.setAttribute("availableMoney",availableMoney);接收参数:`<.

2020-09-11 21:56:48 535

原创 关于使用thymeleaf接收参数及查询返回Map的回忆

关于查询结果返回为Map的记忆梳理resultType设置为Map,那么返回的时候就是Map类型的数据Map数据是KV结构,默认不起别名的情况下,Key是表的字段名.起别名的情况下,Key是取的别名关于Thymeleaf中获取Map数据的值的梳理假设Thymeleaf接收的是一个List<Map<String,Object>> incomeRecordList的List集合嵌套Map集合参数.此处的Map相当于一个实体类,只是实体类属性满足不了数据封装需求,因此使用Map进

2020-09-11 17:28:54 1655 1

原创 正则表达式个人笔记

示例:if(!(/^1[0-9]{10}$/.test(phone))){ showError("phone","手机号格式错误") //3.验证手机是否已注册 }上面的正则表达式是常见的验证手机号码注册时的格式解释:^表示开头,表示结尾$表示结尾[0-9]{10}表示10个字符占位,这10个字符占位的输入只能是0-9之间的数字.如果去掉{10},写成[0-9],则表示1个占位,此占位的字符只能是0-9.可以看做[0-9]{1}等同于[0-9][abc]表示此占位可以写入a或者b或者c这三者中

2020-09-08 22:03:33 138

原创 在thymleaf模板中的basePath完整项目路径的获取

1.使用thymleaf内置的httpServletRequest对象2.使用内联表达式eg:<script th:inline="javascript"> var basePath = [[${#httpServletRequest.getScheme() + "://" + #httpServletRequest.getServerName() + ":" + #httpServletRequest.getServerPort() + "/p2p"}]]; &l

2020-09-08 14:23:46 379

空空如也

空空如也

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

TA关注的人

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