Java
文章平均质量分 78
程序员爱中国
一个有点小哲学思想的程序员
展开
-
Synchronized读写锁(三)
Synchronized读写锁优化历程以及邮戳锁使用注意点原创 2024-08-09 11:42:08 · 879 阅读 · 2 评论 -
AbstractQueuedSynchronizer之AQS
AQS使用一个volatile的int类型的state成员变量来表示同步状态,通过内置的FIFO队列来完成资源获取的排队工作,将每条要去抢占资源的线程封装成一个Node节点来实现锁的分配,通过CAS完成对State值的修改。原创 2024-08-08 17:04:03 · 878 阅读 · 0 评论 -
Java对象内存布局和Synchronized锁升级(二)
Synchronized锁升级过程总结:先自旋,不行再阻塞原创 2024-08-08 15:34:47 · 702 阅读 · 0 评论 -
ThreadLocal
ThreadLocal是什么?怎么用?为什么用弱引用来实现?线程池场景下需要什么?原创 2024-07-26 16:30:35 · 866 阅读 · 0 评论 -
原子操作类
AtomicLong的自旋会成为瓶颈,高并发后造成大量cpu空转,那么为什么LongAdder可以解决这个问题呢?原创 2024-07-25 17:21:33 · 710 阅读 · 0 评论 -
CAS原理以及AtomicStampedRefernce
CAS中文是比较并替换,Unsafe为什么能保证CAS的原子性?ABA问题怎么用CAS来解决?原创 2024-07-24 16:41:19 · 991 阅读 · 0 评论 -
volatile与JMM
volatile两大特性:可见性和有序性(指令禁重排)以及底层两大特性是如何实现的原创 2024-07-24 13:51:36 · 642 阅读 · 0 评论 -
Java内存模型之JMM
JMM的关键技术点都是围绕多线程的原子性、可见性和有序性展开的原创 2024-07-23 16:30:18 · 723 阅读 · 0 评论 -
LockSupport与线程中断机制
LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。原创 2024-07-23 15:09:59 · 1001 阅读 · 0 评论 -
多线程-synchronized(一)
首先得先记住一个原则,synchronized是悲观锁原创 2024-07-22 18:15:22 · 576 阅读 · 0 评论 -
CompletableFuture
CompletableFuture演变以及日常用法原创 2024-07-09 16:05:52 · 626 阅读 · 1 评论 -
Spring Cloud Alibaba - Seata 分布式事务
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。原创 2024-07-05 16:29:12 · 712 阅读 · 0 评论 -
Spring Cloud Alibaba - Sentinel 分布式系统流量哨兵
Sentinel是一种流量治理的平台原创 2024-07-04 17:51:07 · 753 阅读 · 0 评论 -
Spring Cloud Alibaba-Nacos服务注册和配置中心
Nacos(官方网站:nacos.io)是一个易于使用的平台,专为动态服务发现、配置和服务管理而设计。原创 2024-07-02 16:26:42 · 317 阅读 · 0 评论 -
GateWay服务网关
Gateway是在Spring生态系统之上构建的API网关服务,基于Spring6,Spring Boot 3和Project Reactor等技术。它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式,并为它们提供跨领域的关注点,例如:安全性、监控/度量和恢复能力。在Spring Cloud中,在1.x版本中都是采用的Zuul网关;但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关SpringCloud Gateway替代Zuul。原创 2024-07-01 16:54:59 · 997 阅读 · 0 评论 -
Micrometer+ZipKin分布式链路追踪
Micrometer+ZipKin分布式链路追踪原创 2024-06-27 13:46:09 · 1284 阅读 · 0 评论 -
CircuitBreaker断路器-Resilience4j
CircuitBreaker断路器-Resilience4j介绍服务熔断、降级、限流等功能原创 2024-06-26 16:43:22 · 962 阅读 · 0 评论 -
规则引擎-Aviator 表达式校验是否成立
Aviator是一个轻量级、高性能的Java表达式执行引擎,它动态地将表达式编译成字节码并运行。原创 2024-06-25 14:14:00 · 845 阅读 · 0 评论 -
consul服务注册与发现、服务配置与刷新
为什么要用服务注册?为什么要用consul不用eureka?原创 2024-04-24 16:39:50 · 1319 阅读 · 1 评论 -
怎么定位慢SQL问题
开启慢查询SQL日志原创 2024-04-22 16:40:53 · 169 阅读 · 0 评论 -
Maven的dependencyManagement与dependencies区别
先说结论:Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。原创 2024-04-18 11:50:00 · 509 阅读 · 0 评论 -
生产服务器变卡怎么排查
服务器变卡怎么排查,可以从以下四个方面去考虑。原创 2024-04-17 16:11:45 · 926 阅读 · 0 评论 -
Random random = SecureRandom.getInstanceStrong();堵塞线程问题解决
sonar扫描到使用Random随机函数不安全, 推荐使用SecureRandom替换,就是他–》【SecureRandom.getInstanceStrong()】,分别在本地,测试环境测过没问题上生产,但是运行了一段时间突然报错!然后还是像那个博主一样,一段一段代码的注释上测试环境才发现问题在哪里,坑就坑在这,在win10环境正常得很,一到linux上面就和个发病的一样生成随机数字卡顿,导致接口请求无响应。sonar推荐的不一定都是适合自己业务场景,只是站在了技术层面考虑,推荐的东西自己还是要慎用!原创 2023-06-15 17:28:21 · 889 阅读 · 0 评论 -
Calendar计算两个时间之间相差几个月
Calendar计算两个时间之间相差几个月原创 2023-02-24 18:25:26 · 1122 阅读 · 0 评论 -
mongoTemplate Aggregation 多表联查 排序失效问题解决
mongoTemplate Aggregation 多表联查 排序失效问题解决原创 2023-02-23 15:27:04 · 580 阅读 · 0 评论 -
cannot deserialize from Object value (no delegate- or property-based Creator)
cannot deserialize from Object value (no delegate- or property-based Creator)原创 2023-02-20 17:23:34 · 175 阅读 · 0 评论 -
Web程序的调试与排错
欢迎大家再次来到我的博客看我写的一些小东西,感到非常荣幸哈,今天我要讲的是在使用Web应用出现的一些小bug的调试,那么现在就跟着我来吧。一、在运行Web程序时,常犯的一些错误有:1、未启动Tomcat服务,或者没有在预期的端口中启动Tomcat服务2、未部署Web应用,就试图运行Web程序3、运行时,URL输入错误4、存放文件的目录无法对外引用,如:文件放入了WEB-INF、...原创 2017-03-05 00:12:35 · 1303 阅读 · 1 评论 -
中文乱码问题
今天我简单的跟大家讲两种中文乱码的解决方法:1、在JSP页面的charset和pageEncoding的编码报纸一致,一般为“UTF-8”(在网页中出现乱码的现象)2、请求参数为中文(默认编码为ISO-8859-1)表单的method的post属性和get属性Post:request.setCharacterEncoding("UTF-8")因为代码是从上往下执...原创 2017-03-06 22:08:53 · 1081 阅读 · 1 评论 -
报错:javax.servlet.http.HttpServlet
今天把eclipse的路径改了下,在重新新建jsp页面的时候报了以下javax.servlet.http.HttpServlet的错后来经过查度娘解决了,但是根本原因还是我自己有点小粗心忘记了细节,那么,接下来我给大家分享下这个bug的解决办法。1、选中你新建的项目然后右击选中Build Path点击2、选中Libraries中的Add Library'...原创 2017-04-27 09:47:11 · 3233 阅读 · 1 评论 -
RabbitMQ报错:connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=N
目录场景说明报错信息解决办法场景说明项目是springboot结构,win10下安装RabbitMQ,自己配置的一个虚拟主机和用户账号,在RabbitMQ管理界面上有把虚拟主机分配给用户,但是没有把系统默认的Virtua lHost为【/】分配给用户造成的,所以解决办法把Virtua lHost为【/】分配给用户就可解决。报错信息connection error; protocol method: #method<connection.close>(reply-code=530, re.原创 2020-12-15 18:10:47 · 16517 阅读 · 25 评论 -
小记RabbitMQ:生产者提供消息出去之后,消费者没有接收到消息问题解决
目录场景描述如何解决场景描述springboot项目win10下安装的RabbitMQ非默认的虚拟主机和用户,均为自己创建配置在项目的yml文件中第一次使用时是用的默认的guest账密和server主机,生产者和消费者均为同样配置,然后尝试使用,自己在RabbitMQ配置的账密和虚拟主机之后,发现消费者接受不到消息,经排查后发现,生产者的配置为自创的虚拟主机,而消费者的还是默认的server主机【/】,所以修改之后,消费者可正常接收消息。如何解决在YML文件中生产者和消费者的Rabbit.原创 2020-12-15 18:24:42 · 6147 阅读 · 0 评论 -
mongoTemplate支持多表联查 排序 条件筛选 分页 去重分组
列表展示需要对mongo的两表进行连表查询,且根据两个不同的表中指定字段去排序分页展示,其中包含对两个表不同条件的筛选。原创 2023-02-14 16:52:39 · 1920 阅读 · 0 评论 -
springboot 针对rabbitmq多vhost情况处理
项目中在已接入rabbitmq一个vhost的基础上,需要再引入多个vhost进行消息处理,spring原来的支持以及满足不了,所以要重写。原创 2023-02-09 16:06:48 · 1689 阅读 · 1 评论 -
springboot 接入websocket实现定时推送消息到客户端
前端与后端websocket连接上后,多用户登录,后端根据不同用户定时发消息给前端用于展示。原创 2023-02-09 15:44:29 · 2325 阅读 · 0 评论 -
接口返回数据报错:No serializer found for class com.xxxxxx
返回数据报错:No serializer found for class原创 2023-02-08 13:49:51 · 1722 阅读 · 1 评论 -
git语义化定制版本规范
git语义化定制版本规范原创 2023-02-03 11:42:44 · 324 阅读 · 0 评论 -
json字符带有反斜杠\处理
json字符带有反斜杠\处理原创 2023-02-03 11:40:29 · 5891 阅读 · 0 评论 -
springboot引入flink,maven打包插件需替换
springboot引入flink,maven打包插件需替换原创 2023-02-03 11:38:28 · 614 阅读 · 0 评论 -
EasyExcel 实现 批量生成多sheet多Excel打包zip下载
导出学校中高年级的学生信息,根据班级名称分组,一个班级一个excel导出,如果多个excel需要打包成zip压缩包下载,一个excel里面存在多个sheet的情况。原创 2023-02-03 11:33:28 · 2154 阅读 · 0 评论 -
ObjectMapper的objectNode、ArrayNode各种转换使用
objectNode/arrayNode怎么获取节点数值,arrayNode怎么修改节点元素值,json转换objectNode后各种骚操作原创 2022-12-30 17:24:23 · 4210 阅读 · 0 评论