- 博客(97)
- 收藏
- 关注
原创 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 954
原创 JVM优化
1,虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。永久代是JVM虚拟机中一块内存空间,可以设置大小,在内存不够时会触发FullGC,也就是和老年代同时垃圾回收。2,类及方法的信息比较难确定其大小,永久代大小指定比较困难,太小容易出现永久代溢出,太大容易造成老年代溢出。元空间不属于JVM内存,而是使用本地内存,默认是可以无限制使用本地内存,也可以通过参数限制内存使用大小。JDK1.8之前方法区的实现是永久代,JDK1.8之后分方法区的实现是元空间(元空间本地存储)4,堆:存放所有的对象和数组。
2024-03-08 17:49:28 451
原创 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 413
原创 springboot集成redis
RedisUtils工具类封装RedisTemplate的各种方法。创建实体类,实现序列化接口,否则无法存入 Redis 数据库。RedisConfig类主要设置RedisTemplate。application.yml配置。定义redis过期时间。测试具体redis方法。
2024-03-02 20:50:13 412
原创 springboot读取自定义配置
application.yml自定义配置@Value和@ConfigurationProperties(prefix = "前缀")注解
2024-03-02 18:12:23 592
原创 ConcurrentModificationException并发修改异常
在我们使用迭代器进行遍历集合的时候,会获取到当前集合的迭代对象。在里面有封装了迭代器的remove方法与集合自带的remove方法,如果我们调用迭代器对象的remove方法是没问题的,但是当我们调用集合自带的remove方法时,就会产生ConcurrentModificationException 并发修改异常。也就是说,当我们通过非迭代器进行遍历集合的时候,是不允许集合本身在结构上发生变化的。3,使用CopyOnWriteArrayList集合,底层解决并发修改异常,就可以使用普通迭代器去遍历。
2024-02-27 23:28:58 517
原创 springboot定时任务
以上定时任务中gridData.saveOtherGridFromTQ(times)方法,全部类型资料收到后方法才会返回true。1,根据定时任务执行结果决定是否在特定时间后重试定时任务。@Scheduled与@PostConstruct注解。3,当重试次数达到最大次数后,放弃重试。@Scheduled注解cron解析。2,设置最大重试次数。
2024-02-27 11:48:54 472
原创 dto参数校验及统一异常处理
分组校验@Validated(Group1.class) ValidDTO validDTO。分组时需要继承Default默认分组,因为当不加分组时默认分组为Default,如果不继承Default,自定义分组Group1只对加了这个分组的字段生效。处理BindException,将参数校验的第一条异常信息返回给前端。嵌套校验时需要给自定义类加@Valid注解。
2024-02-26 21:13:36 565
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人