自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (3)
  • 收藏
  • 关注

原创 Solidity:Cannot read/write to path outside shared folder

Solidity:Cannot read/write to path outside shared folder

2023-03-08 11:03:53 100

原创 可重入锁 - 源码跟踪ReentrantLock

可重入锁 - ReentrantLock概念可重入锁,是指当前线程可以对某个资源重复加锁也不会导致死锁发生的锁。注意:在使用可重入锁的时候,需要注意,线程对资源a加了多少次锁,就要释放多少次,如果加了5层锁而释放了4层,则资源不会被释放。JAVA中的ReentrantLock家族树可重入锁的家族树非常简单,实现了Lock接口以及可序列化,可以说可重入锁的几个主要方法,都是由Lock要求的,下面我们就细看一下ReentrantLock的几个主要方法。ReentrantLock的主要方法

2020-08-17 10:48:06 149

原创 Seata分布式事务模式详细整理

Seata文章目录SeataSeata介绍——简单可扩展自治事务框架Seata支持的事务模型:Seata特性支持多个微服务框架高可用高可扩展Seata框架组成模块全局事务定义事务流程模型Seata中的事务模式能力边界条件:限制:Seata各模式详细介绍1. AT模式 —— Seata中的分布式事务最优解特点AT的执行流程第一步 - 执行逻辑第二步AT模式的回滚细节与事务隔离事务隔离问题出现的可能性解决方法AT回滚操作步骤AT模式中的事务隔离级别2. TCC模式传统TCC模式Seata TCC实现原理TCC

2020-07-22 11:08:10 4142 2

原创 分布式事务各个解决方案一览

分布式事务文章目录分布式事务一、分布式场景下的数据一致性问题形成原因剖析1. 分布式事务背景背景知识什么情况下会出现分布式事务?——关系库的扩展总结2. 对于刚性事务2pc3pcXA3. 对于柔性事务TCC (try/confirm/cancel)优势缺陷saga事务消息最大努力通知事务刚性事务的解决方案可用吗?给方案选择提供一些参考一、分布式场景下的数据一致性问题形成原因剖析1. 分布式事务背景背景知识什么情况下会出现分布式事务?——关系库的扩展水平分库场景:业务量变得非常庞大当业务量变

2020-07-22 11:03:26 156

原创 java 的 锁(附测试源码)

*还是要使用才能暴露问题呀!并发与锁的知识整理目录*还是要使用才能暴露问题呀!并发与锁的知识整理什么是重量级锁?重量级锁是指线程上锁需要向内核态申请锁资源,这中间会有一个申请的过程,所以很重。jdk早期是这种锁,要上锁得通过kernel申请锁资源。什么是轻量级锁轻量级锁也叫自旋锁、无锁或者一般来说CAS也是指轻量级锁轻量级锁在程序中实现锁,避免了向内核态申请锁的操作。正如它的名字所说,其核心在于“先写入再交换”,当写入的时候会校验输入的参数与获取时是否一致,如果不一致

2020-06-10 23:34:46 211

原创 从内存层面了解java对象与它的锁

目录准备工作测试代码写在最后准备工作知识基础:四把锁的概念(无锁状态、偏向锁(匿名偏向锁)、自旋锁、重量级锁)工具基础:JOL包<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.10</version></dependency>资料基础

2020-06-10 23:07:47 154

原创 线程生命周期图解,看过病就懂

转载自:线程状态详解 - 寻觅的文章 - 知乎 https://zhuanlan.zhihu.com/p/73354504线程生命周期图看完文章之后,我发现一家人到一家医院看病可以很好的模拟线程的运行状态。对上面的模型进行了具体化的描述,更好理解。...

2020-06-05 14:26:11 187

原创 String通过+号拼接需要判空

字符串拼接不复杂的时候最常用的操作就是使用+号拼接,实际上, String + Object的拼接方式相当于String + String.valueOf(Object);所以public static void main(String[] args) { System.out.println("124"+null); }这段代码其实输出的并不是124,而是124null。因为String.valueOf(null)会把null变成"null"。...

2020-06-04 11:05:48 256

原创 mysql int字段 被转成Long问题解决

注意避坑啦!最近我和春春遇到了枚举类无法正常从数据库中取出的问题表象就是NewOrderStatus newOrderStatus这个枚举字段一直都是null,但是同一个do中的其他枚举字段都是正常取出的。没办法只能逐层排查,最终定位到了问题,在枚举处理器中,我们看到code的Class是Long,看来问题应该就是mysql驱动从数据库中取字段类型有偏差导致的。再往深层找,我们能够看到,在com.mysql.jdbc.ResultSetImpl#getObject(int)这个方法里面从数

2020-06-02 23:25:40 4327 1

原创 idea反向追踪调用树

分享一个idea代码重构的小技巧——反向追踪调用链(调用树)---接手这个重构的工作以来,我发现限制这个工作的瓶颈大约是哪里用到了老四件套,以及找改动之后会对现有的哪些接口造成影响吧。诚然,command+鼠标单击是能够达到目的,但是真要用起来还是十分的麻烦啊,所以这个东西就被我找出来了!快捷键就是ctrl+alt+H现在至少我们找接口在哪里被用到会方便一些了。另...

2020-04-30 16:39:00 1155

原创 mybatis的枚举类处理器不生效问题解决

进入convenient项目后遇到了枚举类处理器不能正确被处理的问题,经过查找,找到了相关的代码可以看见通过配置mybatis的数据库会话工厂类,我们能够对枚举处理器进行配置。但是为什么这个处理器没有生效呢?经过我两天对着源码一行一行的排查,发现这样一个问题:这个getObject()方法是一个单例方法,在return行的再次调用并没有让它再次执行配置...

2020-04-23 23:28:54 2251

原创 项目经验总结(慢慢填充、并且欢迎指正)

代码原则部分:坦诚相待原则——写代码的时候尽量不要有隐藏的逻辑,最好别人在读你的代码的时候能够直接把逻辑树给理通,否则你写的代码就是个维护的大坑。redis:别太依赖redis,redis虽然读写快,但它也不是万能的, 要考虑用户量大的情况下,它有可能被塞满。关于怎么减少redis中存放的数据,可以从数据量和高复用来入手。从数据量本身来解决,就是存放的东西不能过大,另一方面,高复...

2020-03-26 17:17:53 143

原创 查询元素是否存在时使用List与Set与Map的比较

现在有下面这样一个场景,![image.png](https://wt-box.worktile.com/public/4e349625-f61a-413e-b592-b5f24af57ad4)你有一个集合,而它的作用只是用来被查询是否包含目标值,你是否也会习惯性的写出上面这段代码?但是等等,看上去这段代码用流式写法写的非常简洁与流畅,但它的性能是最优选择吗?让我们来到ArrayLi...

2020-03-18 16:19:23 997

原创 linux环境下new SXSSFWorkbook(XSSFWorkbook workbook)失败

使用场景  项目开发的时候需要导出一个写死数据很多的报表,考虑到写死数据的开发成本,如果能够直接从workbook中读取需要的数据,岂不是美滋滋?实际操作中遇到的问题项目开发完了之后,在Mac OS X环境下完美运行,但是项目一上线,就报了一个空指针异常java.lang.NullPointerException: null at sun.awt.FontConfigur...

2019-11-27 11:22:31 3226

原创 java8新特性学习笔记之唠唠“匿名内部类与lambda”

负一、知道啥是匿名内部类不?要使用lambda,我觉得你至少得明白匿名内部类是个啥。“o -> o.getName”是lambda表达式,"Book::getName"也是一个lambda表达式,表达式表达式,表达的是什么呢?当你在看到这个式子的时候不懵逼吗?你好像知道要取个什么东西的名字,但是是怎么取名字的,取出来的名字怎么处理,你真的知道嘛?懵逼不,不懂匿名内部类的时候,搁我我也懵。...

2019-08-26 18:12:20 351 2

原创 开源key-value储存系统——Redis学习笔记

写在最前:本文是基于菜鸟教程提供的资料的对redis的学习笔记。附上原链接:https://www.runoob.com/redis/redis-tutorial.html一、什么是Redis?Redis全名叫做 Remote Dictionary Server (远程字典服务器),说到字典就想到很经典的key-value结构,redis正是基于key-value这样的结构搭建的...

2019-08-02 09:46:04 324

原创 活用泛型来统一操作近亲数据结构

在java开发规范当中,从前端接收需要进行插入操作的数据是用InsertVO,接收用于更新操作的数据则是UpdateVO,这两个VO一般来说都是继承了同一个实体类,各自又因为不同的需求有着不同的属性字段。我遇到的情况是这样的@Datapublic class CycleCountOrderInsertVO extends CycleCountOrder { @NotNull(...

2019-07-08 20:45:42 199 2

原创 mybatis 遇到枚举类无法获得有效值

今天在使用mybatis从数据库中拿数据的时候发现数据的枚举字段无法取出枚举类,其他的量都能够取到有效值。在同样的环境下,另一个服务中的类似代码却能够正常取出枚举类,这就让事情显得离奇了起来,把两对代码进行了详细的比较,但是我和前辈都没有发现代码的问题,因为两段代码从枚举类到mybatis的使用方法都是一样的。一直到我们突发奇想可能不是数据库的问题,终于触及了这次问题的真正成因,在数据库中...

2019-05-21 20:08:29 1230

原创 Quartz 结构说明+定时任务配置+集群

Quartz使用文档前两天刚刚学习了一波Quartz怎么使用,单机实现quartz其实并不难,只需要任务实现类+调度器配置类+任务工厂类,调度器工厂配置的properties文件中中IsCluster的值设为false就行了。事实上,如果你只需要单机定时任务的话,在定时任务的方法前加一个spring自带的@Scheduled("cron表达式")注解就行了,轻量便捷可用性高,完全没有必要引入一...

2019-03-06 17:43:56 1539

原创 使用javax.mail发送带附件的邮件

//以下内容请自主将变量值替换为你的//开始String stmpHost = smtp.mxhichina.com;String sendMailAccount ="发件账户";String mailSubject = "邮件主题";String sendTo = “仅在发件邮箱看得见的收件人昵称”String fileUrl = "附件地址";String password =...

2019-02-11 14:32:02 2634

原创 spring boot定制定时任务(项目自启动)/每周报表生成/邮件发送

遇到了一个每周生成报表并发送至特定邮箱的需求,这个需求比较麻烦因为有三个难点:1.如何将获取的数据生成excel文件,在这个项目中我使用的是POI,利用poi生成表格存储在特定的位置。2.如何将表格作为附件发到指定邮箱,这里用的是javax.mail的包,需要注意的是要用附件就要用MimeBodyPart装载入message。3.如何定时生成报表并发送呢?找了几种方法,有用Quartz...

2019-02-01 14:52:25 1634

原创 HTTP Status 405 - HTTP method POST is not supported by this URL

普通的类型可以参考这个https://blog.csdn.net/HelloAnyone/article/details/6122572这里要说的是,上面这个链接没有包含的。 当你在写doPost方法的时候,千万!千万!不要随便super.doPost()!!!这个HttpServlet的源代码 protected void doPost(HttpServletReque...

2018-08-14 12:30:08 320

原创 关于idea的自带数据库

如果你使用idea的时候需要进行数据库的相关操作,又没有装navicat等相关可视化工具,那么idea为你提供了一个简单的可视化数据库的操作。这里以mysql为例。其实操作很简单,首先,你的项目需要连接上数据库。点击右边侧边栏的database,如果你的侧边栏没有找到database,建议你搜一下idea数据库连接,因为这种资源很多我就不多赘述了。然后点击2处的➕号添加数据库。...

2018-08-03 13:57:05 13608 2

原创 mybatis foreach item与index

学到mybatis的时候发现item和index没有说的的那么直接,所以特地去搜了一下,大概只有少数人才会遇到像我这样的问题吧…… &lt;foreach collection="list" item="item" index="index" open="(" separator="," close=")"&gt;

2018-08-01 16:37:05 29438 5

原创 @Autowired is not applicable to local variable

一开始还以为是其他实现类里自动注入过这个bean了所以不能再次注入,其实这个错误的意思是,@Autowired不能应用于局部变量,意思就是:别在方法体里面写啊!!!!...

2018-07-20 10:03:41 13584 15

quartz输入前缀自动生成表的储存过程

quartz输入前缀自动建表sql语句,适用于linux环境,与quartz完美匹配,有报错你找我

2019-03-06

苹果官方国家图标(全)附多语言国家键值对表

从苹果官网上爬下来的所有国家的图标集合,分大洲进行存放,国家语言名称对应图标名称,所以多语言国家会有两个图标对应两个语言

2019-02-20

绿色版驱动精灵

干净绿色的,无广告无弹窗的,驱动精灵,免安装,但软件,下载即用。

2018-12-24

空空如也

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

TA关注的人

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