自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 一个.java文件中只能含有一个public的class类,可以含有多个不加修饰符的class类

在Java中,一个源文件中只能有一个public类,并且这个类的名称必须与文件名相匹配。因此,在一个Java源文件中,只能有一个public类,其他类应该使用默认访问修饰符(即不使用任何访问修饰符),以便在同一个包中被访问。如果需要在其他包中使用这些类,应该将它们定义在单独的文件中,并使用public修饰符。子类与基类不在同一包中:那么在子类中,子类实例可以访问其从基类继承而来的 protected 方法,而不能访问基类实例的protected方法。

2023-10-24 13:05:42 363

原创 latex中把某一个引用的参考文献标红

在bib文件中使用 \color{red}, 和 \color{black}

2023-09-21 14:43:12 2252 7

原创 JAVA中double类型精度问题,加数精度为小数点后两位,加上一个整数,小数点位数不变,再次加上同样一个数,小数点位数减少,精度丢失。

搜了double类型在内存中的保存方式,所占内存为16字节,所以整数和小数所占内存之和是不变的。对比两次结果的整数部分:1761的二进制表示为11011100001,所占位数为11位;2361的二进制表示为100100001100,所占位数是12位。所以第二次计算结果的小数位数会减少,刚好减小的位数上的值为1。遇到一个double类型精度丢失的问题,问题如下:同一个浮点数a,加一个整数b,a+b精度不变,a+b+b精度会发生变化。备注:当小数点有效位数的最后一位为5时,不会出现精度误差。

2023-08-30 15:30:58 475

原创 BeanUtils.copyproperties只覆盖类型和名称完全相同的属性,不同的属性保留原来的值不变

此时userVo{name=“张三”, age=null, phone="11111111"}

2023-08-08 14:04:22 305

原创 “时域的乘积对应频域的周期卷积”在什么情况下不成立?

分析了图像之后得出结论:图像和幅值看起来完全不符合时域乘积的定理,主要原因是在计算fft时出现了频域之积出现了正交的情况,因为图像是每个频率点的abs模值,所以直接用模值来带入理论公式肯定就不对了。以上是我在做实验时遇到的问题,可能解释的不是很清楚。看到网上并没有人提出过这个疑问,所以索性记录一下自己思考的过程。这时会有一个疑问:“时域的乘积对应频域的周期卷积”在这种情况下不成立了吗?理想的图像不应该是下面的图像吗?加汉明窗win = 0.5*(1-cos(2*pi*k/M));

2023-08-06 19:46:39 59

原创 矩形窗会导致频谱泄露

矩形窗的边界是一个突变的过程,使得信号在边界处会多出许多频率分量。由于矩形窗可以由无数个正弦基构成,相当于信号乘上了很多不同频率从波形,同时引入了很多高频部分。时域乘积,相当于频域卷积,因此高频处会出现频谱分量,导致频谱泄露。根据Parseval定理可知信号时域上计算能量和频域上的相等,所以也可以理解为能量泄漏到高频上了。

2023-08-06 17:46:15 134

原创 缓存常见问题

问题描述:给某个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把DB压垮。问题描述:同一时间段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。解决方法:a.返回null值,简单,但是当有大量的不存在的数据时,消耗内存,而且会导致数据不一致。问题描述:访问数据库中不存在的数据,也不会写入缓存,导致每次访问都是直接请求数据库。b.逻辑过期,高可用,性能优,不能保证主句绝对一致。d.给业务添加多级缓存。

2023-07-27 17:25:00 28 1

原创 JAVA事务的传播行为

默认值,如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。- 如果当前没有事务,则与 REQUIRED 类似,都会开启一个新的事务。- 即总是运行在一个事务中,如果之前没有事务,则创建一个新的事务。- 如果当前没有事务,则创建一个新的事务,并在该事务中运行。以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。支持当前事务,如果当前没有事务,就以非事务方式执行。使用当前的事务,如果当前没有事务,就抛出异常。新建事务,如果当前在事务中,把当前事务挂起。

2023-07-27 16:36:51 175 1

原创 @Transactional注解失效总结

如果A类调用了B类,而B类又调用了A类中的方法,那么A类中的事务可能会失效。(调用了自己类中的方法了)应用@Transactional的类必须是Spring管理的bean,否则事务不会生效。某些数据库引擎不支持事务,比如MyISAM,这时@Transactional不会生效。事务传播行为需要匹配调用栈,否则事务可能会意外commit或rollback。综上,使用事务时需要注意方法、异常、传播行为等多个方面,才能保证事务正确生效。如果在事务方法中捕获了异常但是没有抛出,也会导致事务失效。

2023-07-27 16:25:37 175 1

原创 JAVA异常的分类

如:NullPointerException、IndexOutOfBoundsException等,可以不用显式捕获。1、Error(错误),表示系统错误,程序无法处理,如虚拟机内存溢出等错误。当进程中出现此类异常时,进程中断;如果是多线程中某一个线程出现该异常时,当前线程中断。如:IOException、SQLException等,必须捕获或者声明抛出的异常。2、Exception(异常),所有异常的基类,表示可以被程序处理的异常。程序编译的时候会检查,必须对该类异常进行处理,否则编译不通过。

2023-07-27 14:26:46 55 1

原创 JAVA中@Accessors(chain = true)有什么作用?

这让setter的调用更流畅,代码更简洁。@Accessors来自Lombok库,它通过注解自动生成setter/getter、toString等方法。chain = true就是开启链式调用的功能。所以,@Accessors(chain = true)的作用是生成链式调用的setter方法,使代码更简洁。它需要结合Lombok库使用。在Java中,@Accessors注解的chain属性用来生成链式调用的setter方法。

2023-07-26 09:33:40 781 1

原创 在一个事务中,先执行保存,再执行查询,可以查询到上一步保存的数据吗?

事务的原子性是指一个事务里的所有操作要么全部成功,要么全部失败,它不可能只执行其中的一部分操作。但这并不意味着事务内的操作之间是独立的,无法看到对方的执行结果。事务提交前,各个操作对数据库的 change 是可见的,只是还没有最终提交。综上,事务的原子性是保证所有操作同时成功或失败,而不是隔离操作。事务的原子性并不意味着事务内的操作只有在整个事务完成后才能看到效果。- 保存数据后,可以立即查询到刚保存的数据,不需要等整个事务结束。是的, 在同一个事务内,先保存后查询可以查询到刚刚保存的数据。

2023-07-25 18:42:08 1036

原创 latex取消某一段的首行缩进

在段落的上方加上\noindent。

2023-07-22 16:21:54 845

原创 Latex如何缩减段落与公式之间的行间距?

在段落的结尾加上\vspace{-2ex}即可,里面的参数值可以调整。

2023-07-22 16:18:11 648

原创 在多线程的callable方法中出现空指针异常为什么不报错

空指针异常发生在异步线程中:如果空指针异常发生在异步线程中,而主线程没有捕获该异常,那么异常可能不会直接导致程序报错。这是因为异步线程和主线程是独立的,异常发生在异步线程中不会直接传递到主线程。方法在一个新的线程中执行时,如果该线程内部捕获了空指针异常并进行了处理,那么异常将被线程内部消化,不会抛出到外部。这样就导致了异常没有被主线程感知到,从而不会报错。方法的内部进行异常捕获,并根据需要进行相应的处理,例如打印日志、返回特定的结果或重新抛出异常等。为了确保异常能够被及时发现和处理,可以在。

2023-07-21 14:24:56 214 1

原创 ‘npm-run-all‘ 不是内部或外部命令,也不是可运行的程序。系统环境变量已配置还是不行。如何解决?

'npm-run-all' 不是内部或外部命令,也不是可运行的程序,这个错误通常是由于npx没有找到npm-run-all这个包导致的。一般来说,确保npm-run-all已全局安装,并删除重新安装node_modules,就能解决此问题。5. 如果仍未解决,检查package.json中的scripts配置是否正确。4. 如果使用的是yarn,尝试全局安装yarn并使用yarn运行。6. 确认正在执行npm run-script的目录是否正确。2. 全局安装npm-run-all模块。

2023-07-21 09:45:42 1263 1

原创 入参为对象时,参数为该对象的引用,可以改变对象中的成员变量,但是直接修改参数无效。

运行结果:改变对象的成员变量,但是将对象置空无效。

2023-07-19 17:38:46 35

原创 LambdaQueryWrapper的查找和删除操作,wrapper.eq(User::getUserId, idList)的value可以为list吗?

尝试用这种方式查询list,结果查询结果为0,若筛选条件为list,则将eq改为in即可。

2023-07-18 12:01:45 611 1

原创 【MySQL】用一个表中的值去更新另外一张表中的值的SQL语句

【代码】【MySQL】用一个表中的值去更新另外一张表中的值的SQL语句。

2023-07-05 17:49:31 178

原创 group by产生错误#1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregate

Mysql5.7版本以上对group by 分组有了新需求,要求group by 后的字段要与select后查询的字段一致,否则就会报错。

2023-06-27 17:30:57 592

原创 group by用于分页查询 报错 duplicate column

通过观察运行日志可以发现,未使用分组查询和使用分组查询的sql在select count的使用是不一样的。所以如果使用group by则必须保证查询字段中没有重复的。

2023-06-27 12:46:33 120

原创 LambdaQueryWrapper方法查询某个字段的list

LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();wrapper.eq(User::getAge, age);List<User> list = list(wrapper);List<String> nameList= list.stream().map(e -> e.getUserName()).collect(Collectors.toList());

2023-05-26 19:36:14 5018 1

原创 20230517 遇到的问题

2、注解@interface不是接口是注解类,在jdk1.5之后加入的功能,使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口。对应的 @NoArgsConstructor 是添加一个无参数的构造器,一般使用@Builder注解时同时会使用@AllArgsConstructor和@NoArgsConstructor。使用后添加一个构造函数,该构造函数含有所有已声明字段属性参数。它是lombok中的注解,作用在类上;

2023-05-17 17:18:33 27 1

原创 latex中缩小与下一个section之间的间距

在上一个section的段末加上 \vspace{2em}

2023-05-07 22:40:00 1163 4

原创 如何使latex的.bib文件中的文献标题title在文章中显示时保留原来的字母大小写?

在.bib文件中的title中增加一层大括号{}即可。

2023-05-07 21:24:08 242 1

原创 插入mathtype公式如何使公式为$$形式,而不是/[/]

如\[{f_s}\]变为${f_s}$选择格式,勾选内敛公式即可。

2023-05-07 21:10:01 136 1

空空如也

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

TA关注的人

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