rollback-only异常令我对事务有了新的认识

rollback-only异常令我对事务有了新的认识

背景环境相关环境配置:SpringBoot+PostGreSQLSpring Data JPA问题两个使用 Transaction 注解的 ServiceA 和 ServiceB,在 A 中引入了 B 的方法用于更新数据 ,当 A 中捕捉到 B 中有异常时,回滚动作正常执行,但是当 retur...
GraphicsMagick之实践出真知

GraphicsMagick之实践出真知

介绍GraphicsMagick 是个图片处理库,是从ImageMagick 5.5.2分支出来的,但是现在他变得更稳定和更轻、更快一些GraphicsMagick 号称图像处理领域的瑞士军刀。 短小精悍的代码却提供了一个鲁棒、高效的工具和库集合,来处理...
手把手教你如何利用Java给图片添加文字和图片水印

手把手教你如何利用Java给图片添加文字和图片水印

前言最近工作上有个需求,动态生成一张图片,具体来说就是基于模版图片动态添加文字和图片(文字内容不同,图片数目不同),其中文字大小不全一样,且对位置有所要求。本文将剖析多个技术方案来实现水印生成,并最终抉择出...
深入理解final关键字

深入理解final关键字

final 关键字在我们学习 Java 基础时都接触过,而且 String 类本身就是一个 final 类,此外,在使用匿名内部类的时候可能会经常用到 final 关键字。那么 final 关键字到底有什么特殊之处,今天我们就来了解一下。final关键...
深入理解synchronized关键字

深入理解synchronized关键字

前言线程安全在并发编程学习过程中,我们应该都听过“线程安全”这个名称,对于这一概念,我们知道它可以解决并发编程不安全的问题,也有一个简单的印象:“代码在并发环境下,可以安全地被多个线程使用,这就是线程安全“。上...
深入理解volatile关键字

深入理解volatile关键字

前言volatile 这个关键字可能很多朋友都听说过,它有两个重要的特性:保证可见性和禁止指令重排序。但是对于 volatile 的使用以及背后的原理我们一无所知,所以本文将带你好好了解一番。由于 volatile 关键字是与 Java的内...
Happens-Before规则详解

Happens-Before规则详解

在《Java并发编程Bug的源头》一节中提到编译优化会带来有序性问题,具体来说就是 JIT 编译器会进行指令重排序(Instruction Reorder)优化。优化措施引发的有序性问题,Java 语言肯定会注意到,所以就引入了 Happens-Before...
Java并发编程Bug的源头

Java并发编程Bug的源头

相信大家都听说过并发编程,面试中也经常会被提问这一知识点,有时候让讲讲自己有没有并发编程的经验,细致地讲一下。结果可想而知,理论知识还可以说一说,但没多少实践经验,更让人头疼的是理论与实践差距极大。在工作中...
高考报志愿:可惜当年填志愿时,没人告诉我这些…

高考报志愿:可惜当年填志愿时,没人告诉我这些…

又到了差不多一年一度的高考志愿填报的时候了。距离我自己填志愿已经过去了很久,现在回头想想看,自己填志愿真的是随便,什么事情都没有提前了解,甚至最后录取的那个学校还是朋友给我填写的,直到拿到录取通知书我才知道...
Code Review实践小结

Code Review实践小结

Code Review(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,Code Review 都是基本要求,代码合并之前必须要有人审查通过才行。虽然 Code ...