- 博客(84)
- 收藏
- 关注
原创 java面试题
具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。
2022-12-10 16:55:31 867
原创 JVM优化
1,虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。永久代是JVM虚拟机中一块内存空间,可以设置大小,在内存不够时会触发FullGC,也就是和老年代同时垃圾回收。2,类及方法的信息比较难确定其大小,永久代大小指定比较困难,太小容易出现永久代溢出,太大容易造成老年代溢出。元空间不属于JVM内存,而是使用本地内存,默认是可以无限制使用本地内存,也可以通过参数限制内存使用大小。JDK1.8之前方法区的实现是永久代,JDK1.8之后分方法区的实现是元空间(元空间本地存储)4,堆:存放所有的对象和数组。
2024-03-08 17:49:28 415
原创 CPU100%解决思路
cat 2305124.stack | grep ‘29b0d6’ -C 20 执行grep命令,看线程29b0d6做了什么。jstack -l 2305124 > ./2305124.stack 根据线程号查出对应的java线程,进行处理。top -Hp 2305124 显示一个进程的线程运行信息列表。top -c 显示进程运行信息列表。把线程号转成十六进制。
2024-03-06 17:03:06 371
原创 springboot集成redis
RedisUtils工具类封装RedisTemplate的各种方法。创建实体类,实现序列化接口,否则无法存入 Redis 数据库。RedisConfig类主要设置RedisTemplate。application.yml配置。定义redis过期时间。测试具体redis方法。
2024-03-02 20:50:13 396
原创 springboot读取自定义配置
application.yml自定义配置@Value和@ConfigurationProperties(prefix = "前缀")注解
2024-03-02 18:12:23 514
原创 ConcurrentModificationException并发修改异常
在我们使用迭代器进行遍历集合的时候,会获取到当前集合的迭代对象。在里面有封装了迭代器的remove方法与集合自带的remove方法,如果我们调用迭代器对象的remove方法是没问题的,但是当我们调用集合自带的remove方法时,就会产生ConcurrentModificationException 并发修改异常。也就是说,当我们通过非迭代器进行遍历集合的时候,是不允许集合本身在结构上发生变化的。3,使用CopyOnWriteArrayList集合,底层解决并发修改异常,就可以使用普通迭代器去遍历。
2024-02-27 23:28:58 414
原创 springboot定时任务
以上定时任务中gridData.saveOtherGridFromTQ(times)方法,全部类型资料收到后方法才会返回true。1,根据定时任务执行结果决定是否在特定时间后重试定时任务。@Scheduled与@PostConstruct注解。3,当重试次数达到最大次数后,放弃重试。@Scheduled注解cron解析。2,设置最大重试次数。
2024-02-27 11:48:54 350
原创 dto参数校验及统一异常处理
分组校验@Validated(Group1.class) ValidDTO validDTO。分组时需要继承Default默认分组,因为当不加分组时默认分组为Default,如果不继承Default,自定义分组Group1只对加了这个分组的字段生效。处理BindException,将参数校验的第一条异常信息返回给前端。嵌套校验时需要给自定义类加@Valid注解。
2024-02-26 21:13:36 431
原创 jwttoken+redis+springsecurity
生成的token中不带有过期时间,token的过期时间由redis进行管理。当redis过期时间小于10分钟时,redis过期时间续签30分钟。application.yml配置。service层logon方法。
2023-10-11 23:45:03 427
原创 创建延时队列、springboot配置多个rabbitmq
延时队列时间到之后,将消息发送给queue.file_destroy,执行删除文件操作。(图中已经绑定,红框为绑定过程)(图中已经绑定,红框为绑定过程)type选择fanout。
2023-08-21 23:07:10 683
原创 sh脚本定时删除yyyymmddHHMMSS文件夹
在 crontab 文件中,每行代表一个定时任务。删除比如以20230815230000时间命名的文件夹。要每天执行该脚本,可以使用 cron 来设置定时任务。编辑delete_old_folders.sh。编辑 crontab 文件。
2023-08-20 17:04:14 228
原创 下载xml中图片url、上传附件
2,xml解析,将image中图片url保存在集合中。3,遍历集合,当本地不存在此图片时,下载图片至本地。4,将图片路径传给延时队列,用于稍后删除图片。5,保存自定义图片访问路径等信息到数据库。XMLUtil读取远程xml链接。mq发布端定时任务发送消息。
2023-07-26 17:42:01 872
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人