日常
不随意的风
世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。
展开
-
Lists.partition是如何实现懒加载的?
最近看到一篇文章,里面提及了google的common包下Lists.partition方法为懒加载,只有在遍历时才会真正分区。平时使用时并未感觉到,感觉有点好奇。特此将自己寻找的答案的过程整理记录下来。原创 2023-12-14 10:12:35 · 1124 阅读 · 1 评论 -
关于Double中的NaN问题
其中红框部分,是抛出的异常,条件为Double无穷大或NaN,以前对Double的认识停留在浅薄的表面,遇到问题,才发现还有这两种情况。Double提供了判断两种情况的方式,还有其他的判断方法,有兴趣的可以自己查阅。最近在写代码时,因为涉及到计算,当时用了Double作为返回值,后续转成BigDecimal,但在测试过程中,发现有事会报异常:NumberFormatException:Infinite or NaN。1.可以用加入对NaN的判断。原创 2023-10-24 09:56:29 · 706 阅读 · 0 评论 -
multipartFile.getInputStream()报空指针
尤其是在打开文件的情况下测试文件上传可能因为文件占用得不到io流,这种情况需要重新上传下文件。1.看文件名称和controller的入参名称是否一致。如果以上都没问题 可以在测试软件上将文件重新上传下。2.需要加@requestBoday。原创 2023-08-25 11:00:17 · 509 阅读 · 0 评论 -
java.lang.Long cannot be cast to java.lang.Integer解决
出错代码:接收泛型指定是Integer 但是在接测试中 频频抛出java.lang.Long cannot be cast to java.lang.Integer异常,debug 发现Map中的参数确实是Long类型的。该字段的值是count(*) 的结果,网上查了下count(*)的返回结果为BIGINT。应该是此原因导致的。使用父类的Number接收,在使用intValue()方法转成int。原创 2023-08-18 11:34:29 · 925 阅读 · 0 评论 -
MapStruct转换时的一些问题
mapstruct转换日期 date->string。原创 2023-07-07 16:19:22 · 871 阅读 · 0 评论 -
JSON parse error: Cannot deserialize value of type `java.util.Date` from String “2022-12-15 12:28:21
换为@JsonFormat( timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")将@DateTimeFormat(pattern = “yyyy-MM-dd HH-mm-ss”)在测试过程中发现从其他服务获取的日期数据(字符串类型)无法转为date,原创 2023-05-25 16:21:14 · 609 阅读 · 0 评论 -
《深入了解虚拟机》一书中关于对象优先在Eden分配的例子
同时S1区也是GC后存活的对象待的地方,那么它可能也就是引起提前GC的原因。一开始看到老年代占了40%,我以为数组4直接进入进入老年代,毕竟也算大对象,经过几次实验得出结论,在分配数组3时就已经触发GC了,老年代中的40%是数组1和数组2.此外 我们还可以更改数组1或数组4的大小进行验证 ,首先把4改为5MB,我们可以发现老年代中的大小并未概念,而E区的从78%->90%,验证了我们的结论。在我把里面所有的方法变量都注释后,还是会占28%的空间,也可以改数组1、2的大小,老年代的占比就会发生改变。原创 2023-04-04 11:32:08 · 103 阅读 · 0 评论 -
mysql 的自增id 是什么时候生成id的?
2.开启两个事务 一个提交 一个不提交。验证了结论,然后再把事务1的提交。1.关闭数据库的自动提交。原创 2023-03-17 11:19:06 · 295 阅读 · 0 评论 -
java的spi动态扩展
简单来说,就是服务的调用方定义一个接口规范,可以由不同的服务提供者实现。并且,调用方能够通过某种机制来发现服务提供方,并通过接口调用它的能力。说白了,Java中的SPI实现的就是,你按我的接口规范实现服务,我就能通过某种机制为这个接口寻找到这个服务。打包到本地仓库,sringboot项目打包时需要在插件出添加以下代码,否则导入包也无法使用类,详情请看本文章。目录,然后以前面定义的接口名创建文件,并在文件中写入实现类的全限定名。1.创建一个项目,定义一个智能空调的接口。,它所实现的其实是一种服务的发现机制。原创 2023-03-13 16:00:03 · 344 阅读 · 0 评论 -
Springboot:策略模式+工厂模式注入
在调试过程,一直在mapper调用查询方法时,报空指针。这块困惑了很久,最后才发现,我虽然在策略实现类上加了@Componen注解,但在使用工厂类得到对象。今天把项目中以前的代码优化了下,使用策略+工厂模式优化了下。,所以其中的mapper属性虽然有@Autowired注解,但属性实际是空的。使用的时候,在使用的类中也注入工厂就好了,用注入的工厂获取策略对象就行了。这是策略实现类里面的内容,需要用mapper用查询数据库。这是工厂,使用的时候根据id获取不同的实现类。获取具体的实现类时候,调用静态方法。原创 2023-02-09 15:53:13 · 2278 阅读 · 0 评论 -
syntax error, expect {, actual error, pos 1, fastjson-ve
序列化json的时候是用List转换的,解析的时候解析成对象了。原创 2023-01-13 08:58:45 · 1283 阅读 · 0 评论 -
解决多线程事务问题
spring的声明式事务在多线程式,并不会生效。可以使用spring提供的编程式事务解决。亲测有效,至于网上的提供的一些 生成线程屏障的方法 试了下不行,也不知道是不是我的问题。第三步:将上面的放入多线程中,线程池和new 线程都可以。第一步:使用spring提供的编程式事务。核心思路是为每一个线程都开辟一个事务。第二步:在代码逻辑处写入业务逻辑。原创 2023-01-12 16:12:17 · 4422 阅读 · 5 评论 -
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):(解决方法)
解决:启动类上加@MapperScan("com.*.*.mapper.**") 或@MapperScan("com.*.*.mapper")项目:springboot+mybatis-plus。或者每个mapper接口加@mapper注解。原创 2022-12-30 12:32:09 · 320 阅读 · 0 评论 -
mybatis-plus中传参会传进包名
在本地测试均无任何问题,但是将代码提交后,部署到测试服务器后,出现了问题。项目层级的查询不管用,先是在本地分支上排查,但是无论怎么测试都没问题,只要一部署测试服务器就不行,数据库配置都是一样的不存在数据不一致的问题。项目中遇到了一个问题,mybatis在使用中遇到了一个小问题,困扰了不久。后来查看测试服务器日志打印发现传递的项目参数对象的值也没有问题,但是传进去的参数成了一个类似包名的东西。虽然问题解决了,但还是不是很清楚,其中的原理,没道理前两个传参都没问题,就第三个有问题。原创 2022-12-09 08:48:40 · 304 阅读 · 4 评论 -
阿里OSS上传下载
最近工作中,遇到了一个业务,需要将本地的excel上传到阿里云作为模板,下载模板的时候从阿里云上下载要求用流的形式。原创 2022-11-24 14:22:38 · 395 阅读 · 0 评论