- 博客(47)
- 收藏
- 关注
原创 java多线程------synchronized
为了以示区分,这里将Object对象的监视锁叫作对象锁,将Class对象的监视锁叫作类锁。因为内置锁对象的Mark Word的结构会有所变化,Mark Word将会出现一个指向锁记录的指针,而不再存着无锁状态下的锁对象哈希码等信息,所以必须将这些信息暂存起来,供后面在锁释放时使用.Java内置锁是一个互斥锁,这就意味着最多只有一个线程能够获得该锁,当线程B尝试去获得线程A持有的内置锁时,线程B必须等待或者阻塞,直到线程A释放这个锁,如果线程A不释放这个锁,那么线程B将永远等待下去。轻量级锁的问题在哪里呢?
2025-05-07 15:28:40
1048
原创 java高并发------线程的六种状态
处于 TIMED_WAITING(限时等待)状态的线程不会被分配 CPU 时间片,如果指定时间之内没有被唤醒,限时等待的线程会被系统自动唤醒,进入就绪状态。处于 WAITING(无限期等待)状态的线程不会被分配 CPU 时间片,需要被其他线程显式地唤醒,才会进入就绪状态。等待获取一个锁,而该锁被其他线程持有,则该线程进入阻塞状态。当其他线程释放了该锁,并且线程调度器允许该线程持有该锁时,该线程退出阻塞状态。线程调度程序从就绪状态的线程中选择一个线程,被选中的线程状态将变成执行状态。
2025-04-05 19:42:42
1049
原创 java高并发------守护线程Daemon Thread
因为在java web 中,比如用springboot 创建的web项目,springboot和其内嵌web服务器(比如tomcat)默认使用都是用户线程,他们的生命周期与jvm是强绑定的,也就是说springboot项目中 若中止所有用户线程,其整个jvm进程就会中止,守护线程又是由jvm管理的,所以springboot项目使用守护线程是没有必要使用,用线程池更好创建用户线程能更方便管理。守护线程是后台线程,主要服务于用户线程,当所有的用户线程结束时,守护线程也会自动结束,JVM会随之退出。
2025-04-05 19:05:48
334
原创 数据库设计说明文档---表信息导出
参考:https://gitee.com/leshalv/screw#https://gitee.com/topiam/eiam。
2025-03-31 09:27:22
231
原创 java高并发------interrupt相关
说到这里,其实interrupt() 相关的方法就类似于多个线程之间去检查一个boolean值,自己也可以使用 volatile boolean = false 这种变量去代替interrupted 去通信。volatile boolean 更灵活优先使用isInterrupted()结合两者,通过 volatile boolean 管理自定义状态,通过isInterrupted()处理阻塞 中断。
2025-03-30 00:16:42
1084
原创 docker 小记
docker -v2. 如果有,先停止docker为删除docker配置文件目录删除docker service文件目录或删除docker部署目录卸载docker存储库重启服务reboot。
2025-03-11 21:37:31
583
原创 @Validated和@Valid
分组验证是为了在不同的验证场景下能够对对象的属性进行灵活地验证,从而提高验证的精细度和适用性。那么在创建时,就不需要校验id,更新时则需要校验用户id,这个时候就需要用到分组校验了。:是Spring框架特有的注解,属于Spring的一部分,也是JSR 303的一个变种。此外,由于它是Spring专有的,因此可以更好地与Spring的其他功能(如Spring的依赖注入)集成。要校验字段上必须加上分组,分组只对指定分组生效,不加分组不校验。:主要支持标准的Bean验证功能,不支持分组验证。
2025-01-25 10:53:19
274
原创 centos7.9最小化安装之后的配置与下载
若没有wget,先直接把 http://mirrors.aliyun.com/repo 输入到浏览器下载,其次把下载出来的文件直接放在刚才 bak 文件的同级目录下即可,也就是/etc/yum.repos.d。可以使用 ifconfig 或 crul 等。3. 清理缓存并生成新的缓存。2. 配置阿里云yum源。1.备份系统自带源文件。4. 列出当前可用仓库。
2024-08-18 00:58:41
567
原创 easyexcel使用小结-未完待续
读取条额外信息:批注、超链接、合并单元格信息等以读合并单元格为例//创建监听器//读取excel//从监听器中获取合并单元格的数据//从监听器中获取其他数据//把合并单元格的数据和其他数据进行合并自定义监听器@Slf4j// 表头数据// 缓存数据// 合并单元格/*** 获取合并单元格*//*** 获取合并单元格*//*** 这里会一行行的返回头*/@Override@Override/*** 所有数据解析完成了 都会来调用*/
2024-07-04 11:58:37
898
原创 spring aop小记
参考:https://blog.csdn.net/lhj520cb/article/details/125820513。
2024-06-06 16:17:59
410
原创 es问题汇总--待完善
方式一:CountRequest 鄙人喜欢这种方式方式二:SearchRequest 这种方式只能查询出10000条。优化方式,设置则可以获取数据总量。
2024-05-24 17:19:00
785
原创 springboot 集成 es--未完结
一、前提知识常见的两种方式:spring boot提供的API 和 ES 官方提供的APIES官方:RestHighLevelClient:适用于复杂、更细粒度控制的Elasticsearch 操作spring boot:ElasticsearchRestTemplate:比 RestHighLevelClient 抽象更高,更接近于 Spring Data 的风格,当你想利用 Spring Data 的特性(如查询方法、分页等)与 Elasticsearch 交互时,这是一个很好的选择
2024-05-23 16:13:22
1453
原创 JUC------共享模型------管程
管程(Monitor,直译是”监视器“的意思)是一种操作系统中的同步机制,它的引入是为了解决多线程或多进程环境下的并发控制问题。翻译为 Java 领域的语言,。参考: https://www.cnblogs.com/xidongyu/p/10891303.html。
2024-05-10 17:40:20
1052
原创 mysql 迁移至达梦
达梦自带数据迁移工具,很简单,要注意的地方:①登录的用户要有表空间的权限②迁移时候注意勾选 保持对象大小写 不然的话迁移过去之后查询的字段全都是大写。已迁移的数据目前没有办法设置,除非走业务逻辑手动处理。
2024-03-29 17:08:38
292
原创 maven 导入外部依赖
比如导入 /libs/officetopdf/aspose.slides-15.9.0.jar。maven 导入外部依赖。
2024-03-27 14:02:20
796
原创 ocr识别-RapidOcr-Java
②对图片的完整性有非常严格的要求,有的图片即使你在电脑可以预览,也会说图片格式损坏。①对中文识别不行,即使有中文库也不行。(很多字体都识别不出来,得要训练模型)后,对中文识别率大大提高,对图片的完整性也没有非常高的要求。
2024-01-30 19:02:36
1284
3
转载 java基于Tesseract 的 ocr识别
如果直接拿原图去进行识别,假设所有的字都是别正确,那么这些字的排版也是不是我们最终想要的样子,并且图片中有很多的信息是我们不需要的。Tesseract对于dpi >= 300的图片有更好的识别效果。转自:https://www.mspring.org/2018/09/28/Tesseract%E5%88%86%E4%BA%AB/,其链接访问太慢,故再次做个备份。如果图片中的文字是倾斜的,会导致Tesseract的行数据分割不准确,严重影响ocr的效果,所以在识别之前可以先旋转图片,使文字保持水平。
2024-01-30 13:53:39
276
原创 cron 表达式
因此,该cron表达式表示从每个小时的第53分钟开始,每隔5分钟执行一次任务.分:从第53分钟开始,每隔5分钟执行一次。星期几:不限制,可以是任意星期几。小时:不限制,可以是任意小时。日期:不限制,可以是任意日期。月份:不限制,可以是任意月份。根据您提供的cron表达式。
2024-01-19 10:16:00
6668
原创 es修改某个字段的类型
如果你有强迫症,也可以把他的别名dws_dp_sd_fcd_pnecc删除,再把新创建的索引dws_dp_sd_fcd_pnecc11这个重复上面1-3步骤,重新创建一个名字为dws_dp_sd_fcd_pnecc的索引,删除的dws_dp_sd_fcd_pnecc11。到此就可以利用别名dws_dp_sd_fcd_pnecc11的别名dws_dp_sd_fcd_pnecc来访问。删除dws_dp_sd_fcd_pnecc11索引的别名dws_dp_sd_fcd_pnecc。
2023-11-09 09:36:58
1479
2
原创 logback把error和info打在不同的文件中
/’在linux中表示根目录。在Linux系统中,除根目录(root)以外,所有文件和目录都包含在相应的目录文件中。Linux文件系统采用带链接的树形目录结构,即只有一个根目录(通常用“/”表示),其中含有下级子目录或文件的信息;而windows表示目录的方式与Linux有所不同,Windows下有磁盘分区的概念,而Linux下只有目录的概念,所以‘/’所表示的意义在两个系统中有所不同。‘/’在windows中也表示根目录,但那个磁盘的根目录。所以如果用上面的配置,那么日志将在你项目所在的磁盘根目录。
2023-10-27 17:58:53
508
1
原创 springboot+mysql+sql server+mybatis-plus 多数据源使用
springboot多数据源,mysql+sql server+mybatis-plus
2023-03-30 15:54:52
433
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人