- 博客(59)
- 收藏
- 关注
原创 JVM 内存结构的详细介绍
内存区域是否线程共享主要作用生命周期可能抛出的异常程序计数器否记录当前线程执行的字节码指令地址与线程同生共死无虚拟机栈否描述 Java 方法的执行过程,存放局部变量等与线程同生共死本地方法栈否为 Native 方法服务与线程同生共死Java 堆是存放对象实例和数组,GC 的主要区域JVM 启动时创建,关闭时销毁方法区是存放类信息、静态变量、常量等JVM 启动时创建,关闭时销毁。
2025-11-13 17:46:53
1116
原创 JVM 垃圾回收算法的详细介绍
把 Java 堆想象成一个巨大的 “停车场”,里面停满了各种 “车辆”(也就是对象)。有些车是 “正在使用的”(可达对象),有些车是 “废弃的”(垃圾对象)。GC 算法就是不同的 “清障车” 工作模式,它们的目标都是:高效地把废弃的车辆清理掉,腾出空间给新的车辆停放。
2025-11-13 17:19:51
897
原创 JUnit5 的详细介绍和使用
JUnit5 是Java领域最主流的单元测试框架,相比JUnit4 有更简洁的语法、更强大的功能(如参数化测试、动态测试),且完全兼容Java 8+的新特性(如Lambda表达式)。一、JUnit 5 核心组成JUnit 5 由三个核心模块组成,无需刻意区分,只需引入依赖即可自动关联:二、环境准备(以Spring Boot 项目为例)1.引入依赖如果是Spring Boot项目,只需在pom.xml中添加spring-boot-starter-test依赖(已包含JUnit 5)非Spring B
2025-11-11 18:28:48
887
原创 OAuth 2.0的详细介绍和使用
社交登录时现代Web和移动应用种非常常见的功能,它允许用户使用现有的社交媒体账户(如微信、GitHub、Google等)来登录你的应用,而无需创建新的用户名和密码。API开放平台是企业向第三方开发者提供API接口的平台,允许开发者构建集成你服务的应用。这与社交登录有本质不同——这里的使用者是开发者而非最终用户。主要说一下社交登录和API开放平台这两种场景的使用。
2025-11-06 18:25:07
420
原创 Java开发常用小功能干货分享(建议收藏)
个人开发时记录的一些笔记分享1.项目启动2.错误码3.JSON互转4.mysql5.mongodb6.list互转7.idea8.日期9.其他10.未完待续
2024-03-22 10:41:53
462
原创 Springboot通过注解+切面实现接口权限校验
先获取到注解@HasPermission 的内容,从redis中拿到当前用户的所有权限,如果当前用户不是超级管理员并且权限中不包含要请求的接口权限,就返回未授权。用户在登录时会查询数据库将所有权限存入redis,如果对该用户做权限修改时,同步修改redis,这样每次请求接口时,都能从redis中拿到最新的权限。1.首先创建注解 @HasPermission ,跟普通注解创建方式基本一致。另外,还有一种权限校验的方式,可以参考若依的开源,类似这种。2.创建一个切面,用来请求接口时做前置校验。
2024-03-19 09:37:57
1625
原创 Java时间转换2023-12-15T14:53:55+09:00,UTC时间转换当前时间
最近遇到个时间转换问题,从远程接收到的数据是UTC时间,需要在页面展示为当前时间,记录一下。
2024-01-08 18:14:16
901
1
原创 EasyExcel导出压缩图片,判断图片url是否可用
因为有些时候返回的远程图片url无法正常打开,导致在写入excel时会报异常,所以就先判断url是否可用再写入。
2023-12-27 10:39:07
877
原创 java实现EasyExcel导出隐藏或显示某一列
最近在做导出功能,遇到了很多问题,专门记录一下,有其他导出问题的可以自行查看历史文章。实际开发中会遇到客户的各种需求,今天主要说一下关于隐藏列的实现。需要导出的实体类,比如现在要隐藏图片那一列。如果需要自定义隐藏或显示的话使用下面方法。
2023-12-22 11:14:36
5943
原创 EasyExcel本地导出正常,服务器导出报错:java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11FontMa
根据字面意思,X11FontManager就是跟字体有关的,及时定位问题,所以以后有异常不要着急,先看一下具体异常信息,精准定位,节省时间。
2023-12-21 14:56:26
5023
原创 使用java和react关于EasyExcel导出图片的问题,文件打开提示已损坏
解决:前端请求导出接口后,增加返回类型 responseType: ‘blob’2.2 此时文件可以正常下载了,但是用office或者wps打开时提示已损坏。如果有遇到类似的问题,欢迎留言关注。
2023-12-20 16:29:05
1395
原创 Maven/Gradle 构建项目时,忽略单元测试
2.gradle项目构建时,在build.gradle 文件中添加以下代码,可以忽略所有包含 Test 的文件。1.maven项目构建时,加入下面依赖,可以忽略所有以 Test.java 结尾的文件。
2023-12-18 13:53:35
1863
原创 Navicat连接postgresql时出现“ERROR: column datlastsysoid“ does not exist LINE 1: SELECT DISTINCT datlas“报错
方法二:关闭navicat,打开navicat安装目录,找到libcc.dll文件(先备份一份防止后面出问题方便还原),使用十六进制编辑器打开libcc.dll文件,推荐使用在线编辑器https://hexed.it/,打开编辑器后导入libcc.dll文件,ctrl+f 搜索"SELECT DISTINCT datlastsysoid",找到后将"datlastsysoid" 替换为"dattablespace",将文件另存为到初始位置,打开navicat,测试连接打开数据库,可以正常使用。
2023-12-12 18:06:39
4925
2
原创 mongodb之mongoTemplate基本操作
2.application.yml配置文件中添加 (本地测试)架构:springboot+mongodb。3.注入MongoTemplate。1.引入依赖(二选一)
2023-12-12 15:02:08
884
原创 mysql字段拼接、查询重复数据、删除重复数据、还原字段默认值
choose-when-ortherwise,相当于switch-case-default。3.字段拼接:name前面拼接一个1。
2023-06-29 16:33:03
804
原创 JSONObject互转String,JSONArray互转List,list互转String
【代码】JSONObject互转String,JSONArray互转List,list互转String。
2023-06-29 15:39:55
1826
原创 found character ‘@‘ that cannot start any token. (Do not use @ for indentation)
【代码】found character ‘@‘ that cannot start any token. (Do not use @ for indentation)
2023-06-29 15:17:51
271
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅