自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(336)
  • 资源 (4)
  • 收藏
  • 关注

原创 docker mongoDB 断电 启动一会 自动停止问题

mongoDB 异常关机。执行结束后 就成功了。

2023-03-16 16:41:27 691 1

原创 liunx 查看公网ip

liunx 查看公网ip。

2022-10-27 21:28:34 293

原创 Java判断Class 是否是基本类型

Java判断Class 是否是基本类型。

2022-10-27 21:26:33 1358

原创 Semaphore 原理

接下来 Thread-0 竞争成功,permits 再次设置为 0,设置自己为 head 节点,断开原来的 head 节点,unpark 接下来的 Thread-3 节点,但由于 permits 是 0,因此 Thread-3 在尝试不成功后再次进入 park 状态。假设其中 Thread-1,Thread-2,Thread-4 cas 竞争成功,而 Thread-0 和 Thread-3 竞争失败,进入 AQS 队列park 阻塞。刚开始,permits(state)为 3,这时 5 个线程来获取资源。

2022-08-24 22:22:18 192

原创 特殊的读写锁 StampedLock

乐观读,StampedLock 支持 tryOptimisticRead() 方法(乐观读),读取完毕后需要做一次 戳校验 如果校验通过,表示这期间确实没有写操作,数据可以安全使用,如果校验没通过,需要重新获取读锁,保证数据安全。该类自 JDK 8 加入,是为了进一步优化读性能,它的特点是在使用读锁、写锁时都必须配合【戳】使用加解读锁。提供一个 数据容器类 内部分别使用读锁保护数据的 read() 方法,写锁保护数据的 write() 方法。

2022-08-24 22:17:01 173

原创 Springboot统一给redisKey加前缀

通过自定义redis key 序列化器。

2022-08-21 17:48:02 2886 1

原创 前端基础CSS1

➢ 作用:通过id属性值,找到页面中带有这个id属性值的标签,设置样式。• rgba ( 0 , 0 , 0 , 0.5 ) 可以省略写成 rgba ( 0 , 0 , 0 , .5 )• 两个数字为一组,每个数字的取值范围:0~9 , a , b , c , d , e , f。• 如果给同一个标签设置了相同的属性,此时样式会层叠(覆盖),写在最下面的会生效。➢ 常见取值:具体字体1,具体字体2,具体字体3,具体字体4,…• id属性值相当于身份证号码,不可重复,一个标签只能有一个id属性值。

2022-08-21 16:36:56 73

原创 MySql共享锁与排他锁

在符合条件的rows上都加了排它锁,其他session也就无法在这些记录上添加任何的S锁或X锁.如果不存在一致性非锁定读的话,那么其他session是无法读取和修改这些记录的,但是innodb有非锁定读(快照读并不需要加锁),for update之后并不会阻塞其他session的快照读取操作,除了select …在符合条件的rows上都加了共享锁,这样的话,其他session可以读取这些记录,也可以继续添加IS锁,但是无法修改这些记录直到你这个加锁的session执行完成(否则直接锁等待超时).

2022-08-21 16:12:27 639

原创 读写锁原理

读写锁原理

2022-08-21 15:57:23 96

原创 读写锁的应用

读写锁单机更新缓存

2022-08-21 15:39:55 114

原创 ReentrantReadWriteLock读写锁

提供一个 数据容器类 内部分别使用读锁保护数据的 read() 方法,写锁保护数据的 write() 方法。当读操作远远高于写操作时,这时候使用 读写锁 让 读-读 可以并发,提高性能。重入时降级支持:即持有写锁的情况下去获取读锁。写锁-写锁 也是相互阻塞的,这里就不测试了。测试 读锁-读锁 可以并发。测试 读锁-写锁 相互阻塞。

2022-08-21 15:23:43 227

原创 MyBatisPuls 多数据源操作数据源偶尔报错

昨天同时在开发一个项目的时候使用了 MybatisPlus 的多数据源, 但是在登陆的时候偶然就会报错 如下 说使用错库了但是刷新几次有好了 我当时表示十分震惊 debug 了 一个多小时也没找到错误 正当我快放弃的时候 我想起了我以前排除过的一个问题 mybatis的 幽灵分页 (错误的是 分页插件 导致的ThreadLocal 问题)Mybatis Plus 的版本是虽然一个多小时没有找到问题的原因 看到了mybatis plus 在切换数据源的时候使用了 ThreadLocal 直

2022-08-04 20:44:21 2084 12

原创 前端基础HTML标签-基础标签3

系列标签的基本介绍标签名input•input标签可以通过type属性值的不同,展示不同效果type属性值type属性值textvalue属性和name属性作用介绍Øvalue属性用户输入的内容,提交之后会发送给后端服务器Øname属性当前控件的含义,提交之后可以告诉后端发送过去的数据是什么含义Ø后端接收到数据的格式是name的属性值=value的属性值type属性值password注意点。...

2022-08-01 21:20:43 111

原创 前端基础HTML-基础标签2

html基础标签

2022-08-01 20:48:10 125

原创 ReentrantLock 原理

ReentrantLock 原理

2022-08-01 20:17:18 84

原创 数据库单字段存储多个标签(位移操作)

在上周的开发中看到了这样的一个问题一个员工有多个资质如资质1=监理,2=安全员,4=项目经理,8=技术员,16=特种作业人员,32=劳务人员李白1=监理4=项目经理一般我们的解决方式有以下两种方案1没有使用的原因是因为这个资质可能会频繁的增加修改就要频繁的改表结构了数据量一大改表结构就不是一个好的操作方法2这里没有使用的原因就是这个本事就关联表过多了要不就要2次请求数据库。............

2022-07-31 20:43:59 1128

原创 AQS原理和介绍

队列中有head和tail两个指针节点,都用volatile修饰配合cas使用,每个节点有state维护节点状态。早期程序员会自己通过一种同步器去实现另一种相近的同步器,例如用可重入锁去实现信号量,或反之。够优雅,于是在JSR166(java规范提案)中创建了AQS,提供了这种通用的同步器机制。入队伪代码,只需要考虑tail赋值的原子性。主要用到AQS的并发工具类。AQS的基本思想其实很简单。AQS要实现的功能目标。自定义锁的实现和测试。...

2022-07-31 19:22:56 108

原创 Fork/Join线程池

Fork/Join线程池。

2022-07-31 19:14:54 350

原创 任务调度线程池-应用定时任务

任务调度线程池-应用定时任务。

2022-07-31 19:07:22 168

原创 线程池处理异常的方法

线程池处理异常的方法

2022-07-31 19:03:52 530

原创 任务调度线程池基本介绍

在『任务调度线程池』功能加入之前,可以使用java.util.Timer来实现定时功能,Timer的优点在于简单易用,但由于所有任务都是由同一个线程来调度,因此所有任务都是串行执行的,同一时间只能有一个任务在执行,前一个任务的延迟或异常都将会影响到之后的任务。输出分析一开始,延时1s,scheduleWithFixedDelay的间隔是上一个任务结束延时下一个任务开始所以间隔都是3s。评价整个线程池表现为线程数固定,任务数多于线程数时,会放入无界队列排队。...

2022-07-31 19:02:37 229

原创 前端基础HTML-基础标签

前端基础HTML-基础标签

2022-07-29 22:38:56 143

原创 乐观锁批量跟新 纯SQL

mysql 数据库 乐观锁批量更新

2022-07-29 20:14:30 834

原创 Java 线程池的基本介绍

ThreadPoolExecutor使用int的高3位来表示线程池状态,低29位表示线程数量状态名高3位接收新任务处理阻塞队列任务说明RUNNING111YY-SHUTDOWN000NY不会接收新任务,但会处理阻塞队列剩余任务STOP001NN会中断正在执行的任务,并抛弃阻塞队列任务TIDYING010--任务全执行完毕,活动线程为0即将进入终结TERMINATED011--终结状态。...

2022-07-29 19:59:48 90

原创 IDEA中将Java的单行注释 // 转换成 文档注释 /** */

最近接手了别人的一堆代码(没有按照代码规范开发),实体变量上的注释使用的是//单行注释,本人有点代码洁癖.想改过来但是一行一行的改好累啊这里写了一个正则替换在这里记录一下。

2022-07-26 20:19:46 1139 1

原创 手写Java的线程池

简单实现了一个Java的线程池阻塞队列线程池测试代码测试结果

2022-07-26 20:12:18 292

原创 根据IP获取地市

根据IP获取地市

2022-07-03 20:45:13 842

原创 mysql查看bin log 并恢复数据

mysqlbinlog --start-position=4009 --stop-position=4183 --database=test_p -v /usr/local/mysql/log-bin/mysql-bin.000007 > /tmp/binlog_rec1.sqlmysql -u root -pDaxizi7724530! -v < /tmp/binlog_rec1.sql

2022-07-03 20:30:22 285

原创 MySql用户权限

1.1 登录MYSQL:@>mysql -u root -p@>密码1.2 创建用户:格式:grant select on 数据库.* to 用户名@登录主机 identified by ‘密码’  举例:    例 1:增加一个用户 test1 密码为 abc,让他可以在任何主机上登录,并对所有数据库有    查询、插入、修改、删除的权限。首先用以 root 用户连入 MySQL,然后键入以下命令:      grant select,insert,update,delete on . to r

2022-07-03 19:15:05 128

原创 Liunx Mysql安装

说明:  Linux下软件的安装通常有三种方式:二进制、rpm、yum三种方式。MySQL的下载:  因为我使用的是阿里云服务器,联网的,所以我直接在linux下进行下载,使用Windows的小伙伴也可以将mysql下载本地再上传到服务器上面附上官网的下载链接通过命令行在服务器内下载软件包的连接:官网: MySQL官网下载服务器下载(联网):wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-

2022-06-23 09:07:56 66

原创 Mysql数据(Liunx环境)定时备份

二. mysqldump常用操作示例备份全部数据库的数据和结构备份全部数据库的结构(加 -d 参数)备份全部数据库的数据(加 -t 参数)备份单个数据库的数据和结构(,数据库名mydb)备份单个数据库的结构备份单个数据库的数据备份多个表的数据和结构(数据,结构的单独备份方法与上同)一次备份多个数据库三. 还原 MySQL 备份内容四. 使用脚本 + cron定时备份准备脚本 mysql_backup_script.sh编写cron脚本 mysqlRollback.cron执

2022-06-22 16:36:15 86

原创 类的加载概述

​ 我们编写的“.java”扩展名的源代码文件中存储着要执行的程序逻辑,这些文件需要经过java编译器编译成“.class”文件,".class"文件中存放着编译后虚拟机指令的二进制信息。当需要用到某个类时,虚拟机将会加载它,并在内存中创建对应的class对象,这个过程称之为类的加载。一个类的生命周期从类被加载、连接和初始化开始,只有在虚拟机内存中,我们的java程序才可以使用它。整个过程如下图所示:​ 当Java程序中需要使用到某个类时,虚拟机会保证这个类已经被加载、连接和初始化。而连接又包含验证、

2022-06-05 17:34:56 113

原创 Spring Boot整合neo4j

spring-data-neo4j版本:springboot 2.3.5 spring-data-neo4j:5.3.5https://docs.spring.io/spring-data/neo4j/docs/5.3.5/reference/html/#getting-started添加neo4j依赖添加配置(注意:不同版本依赖配置可能不一样),可通过neo4j自动配置类查看创建实体@NodeEntity:标明是一个节点实体 @RelationshipEntity:标明是一个关系实体 @Id

2022-06-05 14:15:59 1476 3

原创 Neo4j - CQL使用

Neo4j的Cypher语言是为处理图形数据而构建的,CQL代表Cypher查询语言。像Oracle数据库具有查询语言SQL,Neo4j具有CQL作为查询语言。使用cypher语言来描述关系:3.2 常用命令https://neo4j.com/docs/cypher-manual/3.5/clauses/CREATE创建create语句是创建模型语句用来创建数据模型创建节点创建关系Neo4j图数据库遵循属性图模型来存储和管理其数据。根据属性图模型,关系应该是定向的。 否则,Neo4j将

2022-06-05 14:10:40 489

原创 Neo4j环境搭建

下载地址:https://neo4j.com/download-center/jdk8可以下载Neo4j Community Edition 3.5.28文档:https://neo4j.com/docs/operations-manual/3.5/解压到新目录(注意:目录名称不要有中文),比如: D:\neo4j\console: 直接启动 neo4j 服务器install-service | uninstall-service | update-service : 安装/卸载/更新 neo4j 服

2022-06-05 13:30:49 193

原创 图数据库Neo4j介绍

随着社交、电商、金融、零售、物联网等行业的快速发展,现实社会织起了了一张庞大而复杂的关系网,传统数据库很难处理关系运算。大数据行业需要处理的数据之间的关系随数据量呈几何级数增长,急需一种支持海量复杂数据关系运算的数据库,图数据库应运而生。世界上很多著名的公司都在使用图数据库,比如:图数据库是基于图论实现的一种NoSQL数据库,其数据存储结构和数据查询方式都是以图论为基础的,图数据库主要用于存储更多的连接数据。使用 Google+(GooglePlus)应用程序来了解现实世界中 Graph 数据库的需求。

2022-06-05 13:13:40 2844

原创 简单实现数据库链接池

简单实现的数据库连接池

2022-06-04 22:37:32 72

原创 final 原理

理解了 volatile 原理,再对比 final 的实现就比较简单了字节码发现 final 变量的赋值也会通过 putfield 指令来完成,同样在这条指令之后也会加入写屏障,保证在其它线程读到它的值时不会出现为 0 的情况不用使用final (低于short)使用final(低于short)加 final 使用常量池(高于short)不加 final 使用常量池(高于short)...

2022-06-04 22:34:58 117

原创 共享模型之不可变

问题提出下面的代码在运行时,由于 SimpleDateFormat 不是线程安全的有很大几率出现 java.lang.NumberFormatException 或者出现不正确的日期解析结果,例如:思路 - 同步锁这样虽能解决问题,但带来的是性能上的损失,并不算很好:思路 - 不可变如果一个对象在不能够修改其内部状态(属性),那么它就是线程安全的,因为不存在并发修改啊!这样的对象在Java 中有很多,例如在 Java 8 后,提供了一个新的日期格式化类:可以看 DateTimeFormatt

2022-06-04 22:24:21 60

原创 JUC Unsafe

概述Unsafe 对象提供了非常底层的,操作内存、线程的方法,Unsafe 对象不能直接调用,只能通过反射获得Unsafe CAS 操作

2022-06-02 17:27:32 64

java html 转word word 转pdf

java html 转word word 转pdf

2024-05-22

Spring5 webFIux Demo

Spring5 webFIux Demo

2023-10-17

autoit-v3-setup

autoit-v3-setup

2022-04-16

arcface_demo.zip

人脸识别SDK

2021-03-14

空空如也

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

TA关注的人

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