![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 56
chenkangck50
这个作者很懒,什么都没留下…
展开
-
如何理解和实现二分查找:一篇完整的解析
如果使用 left < right,当 left 和 right 同时指向最后一个元素(也就是目标值)时,循环会结束,因为条件 left < right 不成立,从而导致无法检查最后一个元素。使用 left原创 2024-04-30 18:46:55 · 108 阅读 · 1 评论 -
Java中的序列化方法探索
这些方法允许您将对象的状态转换成一种可以存储或传输的格式,而不依赖于 Java 内置的序列化机制。但是,当基本数据类型被用作类的字段时,在该类实现了 Serializable 接口的情况下,这些基本数据类型的字段会自动包含在序列化过程中。在 Java 中,序列化是将对象的状态信息转换为可以存储或传输的形式(例如,转换为字节流)的过程。这意味着,如果您创建了一个实现了 Serializable 接口的类,并且这个类包含基本数据类型的字段,那么当您序列化这个类的对象时,这些基本数据类型的字段也会被序列。原创 2024-01-03 11:31:38 · 1086 阅读 · 0 评论 -
如何有效使用 .gitignore 文件
在任何使用 Git 的软件项目中,.gitignore 文件都是一个必不可少的工具。它帮助开发者定义哪些文件和目录应该被 Git 忽略,从而保持代码库的整洁和管理的简便性。什么是 .gitignore?.gitignore 文件是一个文本文件,您可以在其中指定 Git 应该忽略的文件和目录模式。这通常包括编译生成的文件、本地配置文件和其他不需要或不应该包含在源代码管理中的文件。基本用法创建 .gitignore 文件很简单。您只需在项目的。原创 2023-12-29 17:35:53 · 746 阅读 · 0 评论 -
如何在Spring Boot中集成RabbitMQ
在Spring Boot集成的RabbitMQ应用中,通常会在消费者处理消息时发生异常的情况下,明确地将消息发送到死信队列。如果点进来,没有显示这个绑定队列,就说明配置的不对,后续也无法消费,点进队列后,就会显示队列中的消息了。避免消息丢失:死信队列确保无法处理的消息不会被丢失,而是存储在一个特定的地方,供进一步的检查和处理。队列达到最大长度:如果队列设置了最大长度并达到这个限制,最老的消息可能会被移动到死信队列。在这个例子中,如果在处理消息的过程中发生异常,消息会被明确地拒绝,并发送到配置的死信队列。原创 2023-12-07 19:40:29 · 1134 阅读 · 2 评论 -
Redis 发布订阅机制深入探索
Redis 的发布订阅(pub/sub)机制是一种消息传递模式原创 2023-11-29 18:08:57 · 333 阅读 · 0 评论 -
windows下使用springboot3.0 和 使用grallVM虚拟机
3.因为grallVM需要C++环境,所以我们还需要安装visual studio 选择C++桌面开发 ,箭头指的3个必须选,自己windows是什么版本就选择什么版本,记住自己的安装位置,要配置环境变量。JDK17 下载地址 :https://www.oracle.com/java/technologies/downloads/GrallVM 虚拟机 下载地址:https://www.graalvm.org/downloads/原创 2023-10-24 19:27:13 · 312 阅读 · 0 评论 -
Spring Expression Language (SpEL) 介绍与使用方法
SpEL 提供了类似于 Java 的语法,并且可以用于查询对象的属性、调用对象的方法、执行算术运算、集合操作等。我们在本篇博客中介绍了 SpEL 的基本语法和几种常见的使用方法。上面的代码将Person对象的name属性注入到PersonService的name字段中。SpEL 的语法非常类似于 Java 的语法,但是有一些特殊的运算符和构造。上面的两个表达式是等价的,都是用来访问person对象的name属性。在本篇博客中,我们将介绍 SpEL 的基本语法和几种常见的使用方法。原创 2023-09-05 17:30:27 · 314 阅读 · 0 评论 -
浅谈java中的集合框架
Java 集合框架的核心接口是 java.util.Collection 和 java.util.Map,每种集合框架又是基于底层数据结构的不同,赋予不同的特性,所以只要弄懂了底层数据结构的特性,就能很好的掌握改集合的特性和运用。原创 2023-05-30 15:45:34 · 883 阅读 · 0 评论 -
Docker的三种网络模式
docker 的三种网络模式原创 2023-04-26 17:38:12 · 4255 阅读 · 0 评论 -
spring bean的三级缓存原理
spring bean 三级缓存原理原创 2023-04-18 15:20:36 · 2041 阅读 · 0 评论 -
Spring IOC 和 AOP 的原理
spring IOC 和AOP原理原创 2023-04-18 13:37:28 · 283 阅读 · 0 评论 -
kkilfeview预览源文件来自不受信任的站点
kkfileview原创 2023-03-31 10:33:43 · 3893 阅读 · 7 评论 -
kkfileview阿里云安全扫描:威胁类型敏感信息回显 (Sensitive Information Response)
kkfileview原创 2023-03-30 17:11:14 · 1857 阅读 · 0 评论 -
增强for循环无法做更新
增强for循环原创 2023-03-15 15:27:35 · 221 阅读 · 0 评论 -
feign客户端get请求,服务端抛出Method Not Allowed: Request method ‘POST‘ not supported
feign调用失败原创 2023-02-28 17:57:55 · 1268 阅读 · 0 评论 -
kkfileview在预览word文档中文乱码
kkfileview原创 2023-02-23 19:37:38 · 3389 阅读 · 3 评论 -
堆-优先队列priorityqueue原理和应用
堆,优先队列原创 2023-02-23 13:37:16 · 624 阅读 · 0 评论 -
阿里云创建https请求
阿里云创建二级域名,证书设置,nginx配置https安全请求原创 2022-12-09 17:39:10 · 389 阅读 · 0 评论 -
java线程池ThreadPool处理线程异常
线程池线程异常处理原创 2022-09-16 10:53:26 · 2901 阅读 · 0 评论 -
递归算法处理字典翻译超时处理
效率优化原创 2022-06-07 15:12:42 · 160 阅读 · 0 评论 -
websocket 单机服务 和 分布式集群解决方案
1.为什么有了http还需要websocket为 HTTP 协议有一个缺陷:通信只能由客户端发起,如果服务器有连续的状态变化,只能使用"轮询"WebSocket 服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息(这个功能可以做个聊天器哦)默认端口也是80和443 协议标识符是ws(如果加密,则为wss),服务器网址就是 URL关于短连接 ,长连接长连接: HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接)原创 2022-03-11 17:10:44 · 2169 阅读 · 0 评论 -
com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, pos 0, fastjson-version 1
这是因为json 经过redis 后,被加了转义字符原本的json是这样的:经过redis后变成这样,是因为被加了\转义{\"cmd\": \"102\",\"content\": \"语音识别失败\"}解决:先解析再转对象String msg= (String)JSON.parse(message);IFlytekVoiceDTO iFlytekVoice = JSON.parseObject(msg, IFlytekVoiceDTO.class);...原创 2022-03-08 18:00:30 · 6093 阅读 · 0 评论 -
itext 生成pdf 化学表达式或者字符的上标,下标不显示
数据库中 气体单位原本是这样的:pdf打印出来是这样的查阅多方资料,是因为代码中定义的字体不包括特殊字符,例如上标,下标等如下:UniGB-UCS2-H// 不同字体(这里定义为同一种字体:包含不同字号、不同style) BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);在windows字符集下有字符集segoeuisl.ttf 可以显原创 2022-03-07 17:52:25 · 1678 阅读 · 0 评论 -
There is no default constructor available in ‘org.springframework.context.ApplicationEvent‘
ApplicationEvent 原因父类没有默认的构造方法(当类显示定义构造函数时,没有显示定义无参情况,无参构造器就消失)继承父类的,实例化时会先调用父类,即在子类的构造器中super(args)(调用父类的构造器实例化父类),有默认构造器就不用担心,会默认调用出现这个报错,我们需要在子类的构造器中super(args)的构造器...原创 2022-02-14 11:32:22 · 641 阅读 · 0 评论 -
itext 生成pdf,包含生成页眉,页脚,首页背景等
1.引入依赖: <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13</version> </dependency> <!-- https://mvnreposito原创 2022-01-06 10:00:00 · 1318 阅读 · 2 评论 -
new ScriptEngineManager().getEngineByName()返回null
在引入js引擎时,本地开发环境可以返回值,但是上了生产,就一直报空指针异常,原因是new ScriptEngineManager().getEngineByName(“javascript”)返回了null于是打印日志 ScriptEngineManager manager = new ScriptEngineManager(); List<ScriptEngineFactory> factories = manager.getEngineFactories原创 2021-12-13 20:47:51 · 8112 阅读 · 7 评论 -
java System源码分析
System首先编译期间开始初始化,初始化方法在initializeSystemClass中类中主要一下几个功能(1)系统信息的访问,如外部属性和环境变量等//可以打印出所有system的参数,也可以添加参数进系统中 System.setProperty("user.name","你好"); System.getProperties().forEach((k,v)->{ System.out.println(k+" "+v);原创 2021-12-09 20:26:53 · 568 阅读 · 0 评论 -
优雅重构if-else
看到一篇好的文章,关于if-else源自:文章地址:https://medium.com/swlh/5-ways-to-replace-if-else-statements-857c0ff19357文章中作者第一句话:if -else 是一个糟糕的选择文章主要从5点来说明1.完全不需要的else模块,下面应该是经常常用的if-else写法了,但是其完全可以更优雅的摒弃else模块例子:重构:感觉逼格瞬间高了2.值分配重构: if -else 中当找到一个符合的值后,仍旧会去找下个原创 2020-11-24 11:08:05 · 143 阅读 · 0 评论 -
Restful风格API
RESTful API设计原则与规范路径(Endpoints)路径表示API的具体网址URL。在RESTful架构中,每个URL代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与代表的对象名称对应。一般来说,某一同种记录的”集合”(collection),所以API中的名词也应该使用复数。具体细则:使用名词而不是动词。举例来说,某个URL是/cards/show/1,其中show是动词,这个URL就设计错了,正确的写法应该是/cards/1,然后用GET方法表示原创 2021-09-06 14:54:21 · 138 阅读 · 0 评论 -
一次缓存穿透导致的生产问题
情形:页面device control,设备维护disarmed,每3次会出现一次数据混乱问题原因:redis 集群采用3主3从模式,但是有台主节点数据没有和其他同步,数据丢失代码中当redis查不到数据时,从其他节点就从数据库查(我们数据库存储模块一些更新没有写入),所以每次轮询查到数据丢失redis节点时,会导致数据混乱。解决:搞定redis集群问题就可以啦...原创 2021-05-17 17:32:56 · 54 阅读 · 0 评论 -
线程池ExecutorService中submit 和 execute的区别
ExecutorService线程池执行线程时有submit 和execute 两种方法executorService.execute 无返回值,直接执行,因此不能阻塞线程,并且在执行异常时会抛出异常executorService.submit 有三种类型,接返回future,可以阻塞获取线程执行结果,在执行异常时会被异常处理吃掉,不会抛出异常区别如下package juc;import java.sql.Time;import java.util.concurrent.*;public原创 2021-04-26 14:53:34 · 2740 阅读 · 0 评论 -
四大类型函数式接口
包名:package java.util.function;函数式接口:只有一个方法的接口四大函数型接口1.function 函数型接口 @FunctionalInterface是函数接口注解 传入参数T,返回参数Rpackage function;import java.util.function.Function;/**function 函数型接口*/public class TestFunction {public static void main(String原创 2021-04-25 16:43:09 · 1296 阅读 · 0 评论 -
关于java中语法糖双冒号 this:: 和Class::
在jdk 1.8开始出现lambda 表达式,而双冒号:: 和lambda表达式一样都是简化写法,可以相互转化。类名::方法名这种双冒号语法糖是最常见的:例如:x -> System.out.println(x) 可以替换成 System.out::println2.user-> user.getName();可以替换成User::getName就是和lambda表达时互换this::方法名 ,本质上是对函数型接口的简化这里的this代表当前对象,调用当前对象的方法,例如如下原创 2021-04-25 16:28:46 · 1866 阅读 · 2 评论 -
Cannot deserialize instance of `java.lang.String` out of START_OBJECT token
测试遇到报错:{"data":null,"status":500,"error":"JSON parse error: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.原创 2021-04-23 15:30:17 · 9569 阅读 · 3 评论 -
Batch update returned unexpected row count from update [0]; actual row count: 2; expected: 1
在调试接口遇到如上错误:更新或者删除字段的时候,只想更新一条,结果有两条这个是由于用户hibernate使用HQL更新和删除实体,一定需要先获取实体的ID,如下本意直接删除字段为某个值,但是会先查出对应的id,然后根据id去删除但是由于ID有重复,导致报错(通常在开发环境,数据错乱,id 不应该重复)解决方法:查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表原创 2021-04-20 18:53:43 · 2161 阅读 · 0 评论 -
Feign 调用对象时:JSON parse error:Cannot deserialize value of type `java.util.Date` from String
在使用feign调用其他服务接口时,如果对象存在Date类型就会报错Cannot deserialize value of type java.util.Date from String解决方法1:在调用端的model类上加上注解,必须有无参构造器@JsonFormat(pattern = “yyyy-MM-dd”, timezone = “GMT+8”)@FeignClient(value = "${feignTestArms}",fallbackFactory = FeignClientTestF原创 2021-02-07 11:44:35 · 3684 阅读 · 1 评论 -
mongodb 异地备份方案及测试
调研:全量和增量备份:新增节点第一次同步是,是全量备份,以后每次同步就是增量备份异地配置延迟节点:简介:延迟节点是过去某个时间点的“数据快照”,通过做数据备份优点:在主节点上删除数据时,其他从节点实时同步主节点数据,从节点删除也被删除,而此时延迟节点由于延迟时间数据未同步,可以恢复主节点上误删除的数据缺点:做不到异地容灾最终方案:3个节点数据中心一 数据中心二 数据中心三primary second原创 2021-01-19 13:17:52 · 995 阅读 · 0 评论 -
关闭activemq开启jmx1099端口
生产VA扫描工具扫描到某个服务开启了1099 JMX 端口,需要将这个端口关闭首先来了解下什么时JMX所谓JMX,是Java Management Extensions的缩写,给我的感觉监控服务的JVM的小工具吧打开本地jdk,bin目录,找到jconsole.exe ,双击就可以连接JMX了连接后是这个样子的,可以视图化监控jvm某个服务中使用了apachemq,启动服务会有如下日志,开启了apache的jmx 1099端口,但是生产的端口管理需要这个端口,需要关闭JMX console原创 2021-01-13 10:25:43 · 1820 阅读 · 0 评论