
Java杂谈
记录一些杂谈
SYKMI
我很懒,还没有添加简介
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring事务提交时机与并发可见性问题总结
Spring声明式事务(@Transactional)并不一定在方法return前提交,AOP代理机制导致的“锁释放到提交事务之间的时间窗”是一个常见陷阱。编程式事务(TransactionTemplate)配合可以让事务提交和锁释放顺序严格受控,彻底消灭并发下的可见性漏洞。原创 2025-06-06 00:20:27 · 389 阅读 · 0 评论 -
记录被mybatis一级缓存坑的问题
我是通过其他方法调用A方法去查询的,但是有一天我发现有个方法连续调用了A方法五次,每次只有第一次有结果,后续的四次调用在A方法的查询代码中返回的List都是空的,我查资料说是mybatis一级缓存的问题,但是我这里查询的动作都是在A方法中的,理论上应该是每次调用A方法查询的都是新的集合,但是只有第一次调用有结果,其后续调用都是空集合。我之前有个方法需要多次调用数据库拿数据,由于每次查询数据比较少,所以我前期都是直接查数据库拿的,准备后面再改缓存。原创 2025-06-03 13:22:51 · 299 阅读 · 0 评论 -
@JsonFormat时区问题
由于注解优先于配置文件生效,所以确实以年月日返回了,但是时区不对所以导致返回的时间不一致,可能是@JsonFormat默认时区是timeZone为GMT(即标准时区),和北京时间相差8小时,所以需要显式配置。对于Java类型为Date类型的确实生效了,但是有些场景需要单纯返回yyyy-MM-dd格式的日期,就需要加@JsonFormat注解,我一开始添加的是。#json 时间戳统一转换。我在配置文件中添加了。原创 2025-05-23 15:44:25 · 273 阅读 · 0 评论 -
@XXX@占位符和${XXX}占位符区别
需要注意的就是在maven的pom文件里使用的占位符是${XXX}形式的,这是给pom文件内部使用的,但是如果springboot的配置文件yaml/yml想使用maven定义的值时必须用@XXX@引用,如果使用${XXX}不生效。maven的内部占位符也可以在构建时动态指定,使用-Dkey=value 或者 你定义了profiles多环境配置也可以使用-P[dev|test|prod]激活指定环境引用里面的属性。原创 2025-05-08 13:49:35 · 147 阅读 · 0 评论 -
HttpClient工具类
【代码】HttpClient工具类。原创 2025-04-24 13:22:47 · 83 阅读 · 0 评论 -
ObjectMapper的一些东西
【代码】ObjectMapper的一些东西。原创 2025-04-22 17:25:57 · 91 阅读 · 0 评论 -
解决IDEA中自动生成返回值带final修饰的问题
2、在自动生成的地方,仔细观看final下面带有下划线,说明此处存在快捷键,这时按下ALT + F, 选项框会取消勾选Declare final. 回车接受.此后自动生成的返回值就不会带有final修饰.1、在settings选项下,Editor–Code Style–Java–Code Generation,确保红框内的两项不被勾选。原创 2025-04-10 14:21:20 · 520 阅读 · 0 评论 -
PDFBox/Itext5渲染生成pdf文档
pdfbox渲染pdf文档原创 2025-04-06 23:04:30 · 583 阅读 · 0 评论 -
关于分布式的误区
分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。通俗的理解,所谓分布式系统,就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同构成的系统称为分布式系统,同一个分布式系统中的服务器节点在空间部署上是可以随意分布的,这些服务器可能放在不同的机柜中,也可能在不同的机房中,甚至分布在不同的城市。原创 2025-03-10 16:42:19 · 481 阅读 · 0 评论 -
一个类就创建Json反序列化所需的属性
平时我们开发的时候总是会有对接其他系统的需求,其他系统返回的Json并不总是简单的这种类型,有可能里面包含的数据比较杂,会出现多层嵌套呀,数组的值这种情况,我们反序列化的时候用Map当然也是可以处理的,就是比较麻烦,得一直去找,所以一般会创建一个类接收,但是遇到Json嵌套的比较多的时候并且里面的k和v属性也比较多的时候额外创建其他类又太麻烦,这种情况下我们可以使用Java的静态内部类去处理,如下。原创 2024-12-19 22:41:37 · 384 阅读 · 0 评论 -
终于知道大家为啥用Jackson进行json序列化的多了,记录下
之前我一直用的Gson,感觉Gson很方便,方法名简洁易懂,但是有次我对接其他平台的接口时,对方返回的json里的值是小数,使用Gson反序列化总是会处理成Double类型,尤其是需要先反序列化成Map之后再拿里面的值去转成对象时比较麻烦,看网上有解决Gson反序列化为小数的文章,配置了好一会也没配置好,就直接用Jackson了,确实很牛,可以正确识别原来对象的格式,不需要转换了,再贴下配置ObjectMapper序列化时间啥的吧,自用记录下。原创 2024-12-18 23:41:32 · 227 阅读 · 0 评论 -
记一次自定义类型处理器未生效的原因
之前分享过Mybatis连接PGSQL数据库,为了操作方便增加了一些类型处理器的文章,那时使用的是Springboot框架,,当时直接启动项目就注册了这些类型处理器,今天接触了新项目也要用到这些类型处理器,就自然而然的复制了过来,没想到启动项目不生效,找了半天才发现原因,这个项目是Springboot多模块的,然而我放置的位置在Springboot启动类所在的包的外面,所以导致即使加了@Configuration也无法被扫描到,根本就没生成Bean!原创 2024-12-18 23:30:25 · 267 阅读 · 0 评论 -
方法引用中为什么签名看起来不匹配也可以引用?(未绑定的方法引用)
实际上this是作为普通方法的第一个参数被传入的,如果一个普通方法有多个参数,那么this是排在第一位(只是被隐藏了),后续参数按照代码顺推的,所以我们有时可以看到方法引用没有严格按照方法签名去匹配,就是这个原因,就像下面这样。其实Java中的普通方法是有隐藏参数的,这个参数就是我们熟悉的this,所有的普通方法都是一样的 比如下面的eat方法。但是在JVM的角度上看,实际调用实例方法需要有一个this对象,你可以像下面这样去想。(但实际方法签名不是这样的,签名还是以我们看到的为准。原创 2024-10-17 00:02:04 · 280 阅读 · 0 评论 -
Java类的初始化顺序
静态代码块仅在类加载的时候执行一次!重复创建对象不会重复执行!其实setter方法没必要加,是我手动调用的,所以顺序依次为。原创 2024-07-24 23:04:58 · 234 阅读 · 0 评论 -
泛型的继承使用
图片描述的是我创建了一个TupleList类继承ArrayList,ArrayList中指定的泛型类型为TupleFour,并且TupleFour中的泛型可以看到和子类是一样的<A,B,C,D>,我之前在想为什么TupleFour类型的泛型也需要写,不写不也可以吗?当你定义一个泛型类,实例化时需要指定类型,如果不指定默认就是Object类型。所以我认为泛型的继承使用时,得先看子类定义的泛型,父类使用子类的泛型标记时,那么就产生一个约束的作用,编译器会帮你做类型检查。原创 2024-05-21 14:55:15 · 298 阅读 · 0 评论 -
springboot接收到请求时中间的“+“会被替换成空格的原因
springboot接收到请求时中间的"+“会被替换成空格的原因是没有进行URL编码,但是后端接口解析参数的时候会进行解码操作,一旦解码就会将”+"替换成空格了,* 所以遇到这种情况的时候可以在发送请求之前使用URL编码过一次,这样就不会出现问题了。原创 2023-06-20 13:49:23 · 2489 阅读 · 0 评论 -
关于tomcat版本不同导致的get请求携带中文参数乱码的问题产生的过程
关于tomcat版本不同导致的get请求携带中文参数乱码的问题产生的过程原创 2023-05-06 13:30:40 · 1077 阅读 · 0 评论 -
使用PDFbox获取pdf文件的内容和图片
/</</</原创 2023-05-05 20:10:48 · 1637 阅读 · 0 评论 -
中文转拼音工具类
中文转拼音工具类原创 2023-03-18 13:41:34 · 129 阅读 · 0 评论 -
使用EasyExcel读取和写入表格
excel读取/导出原创 2022-10-18 18:59:04 · 8798 阅读 · 1 评论 -
时间戳的问题
时间戳原创 2022-10-10 14:05:58 · 4581 阅读 · 0 评论 -
一个汉字属于一个字符吗?
汉字属于字符吗原创 2022-10-08 16:22:47 · 2744 阅读 · 0 评论 -
为什么重写equals时最好同时重写hashCode方法?
hashCode和equals原创 2022-09-22 15:17:55 · 279 阅读 · 0 评论 -
compare方法的排序方式
sort排序原创 2022-09-14 19:19:49 · 2879 阅读 · 0 评论 -
关于原生JDBC中的executeUpdate方法的小知识点
sql原创 2022-08-01 09:28:32 · 392 阅读 · 0 评论 -
keySet方法的小知识点
今天发现在map<K,V>集合中的keySet()方法获取到的Set集合后,我对这个Set做remove操作竟然会影响到map<K,V>集合代码如下package com.Sykking.Test;import com.Sykking.Test.Util.check;import java.util.*;public class MyTest { public static void main(String[] args) { HashMap&原创 2022-03-18 14:16:03 · 1585 阅读 · 0 评论