Java
Java相关知识
lizz666
不积跬步无以至千里
展开
-
Cannot find any provider supporting AES/CBC/PKCS7Padding: PKCS7Padding方法
使用对称加密时,使用了"AES/CBC/PKCS7Padding"类型时,出现"Cannot find any provider supporting AES/CBC/PKCS7Padding"不支持的错误。原创 2024-08-09 17:34:19 · 451 阅读 · 0 评论 -
RocketMQ:新增consumer消费组group从最新消息开始消费skip last offset message
想创建一个新的consumer去消费一个已经再使用的topic时,默认情况下会从topic中的第一条消息开始消费,大多数情况是需要从最新的消息开始。然后再使用CONSUME_FROM_LAST_OFFSET设置时并不会对新的consumer生效,它只是在停用consumer重新启用时,如果之前订阅OFFSET消息已经不存在了(默认rocketmq中存放的消息是72小时)就会从最后一条开始。所以代码层面无法实现新的consumer订阅topic最新消息开始消费的操作。原创 2024-05-15 16:49:31 · 784 阅读 · 1 评论 -
RocketMQ:broker配置说明
66. maxTransferBytesOnMessageInMemory: 内存中消息的最大传输字节数。14. maxTransferCountOnMessageInMemory: 内存中消息的最大传输计数。38. maxTransferBytesOnMessageInDisk: 磁盘上消息的最大传输字节数。71. deleteConsumeQueueFilesInterval: 删除消费队列文件的时间间隔。36. deleteCommitLogFilesInterval: 删除提交日志文件的时间间隔。原创 2024-05-14 17:33:27 · 1629 阅读 · 0 评论 -
JAVA进化史: JDK17特性及说明
JDK 17 于2021年9月发布。允许开发人员在 Switch 语句中使用类型匹配。Switch 的类型匹配可以简化代码,并提高代码的可读性和可维护性。原创 2024-01-16 15:05:38 · 801 阅读 · 0 评论 -
JAVA进化史: JDK16特性及说明
JDK 16于2021年3月发布。这个版本引入了一些新特性和改进,以下是其中一些主要特性。原创 2024-01-16 14:36:01 · 545 阅读 · 0 评论 -
JAVA进化史: JDK15特性及说明
JDK 15于2020年9月发布。这个版本引入了一些新特性和改进,以下是其中一些主要特性。原创 2024-01-12 16:50:43 · 522 阅读 · 0 评论 -
JAVA进化史: JDK14特性及说明
JDK 14于2020年3月发布。这个版本引入了一些新特性和改进,以下是其中一些主要特性。原创 2024-01-12 16:46:37 · 978 阅读 · 0 评论 -
JAVA进化史: JDK13特性及说明
JDK 13于2019年9月发布。原创 2024-01-04 17:12:12 · 568 阅读 · 0 评论 -
JAVA进化史: JDK12特性及说明
JDK 12于2019年3月发布。这个版本相对于之前的版本来说规模较小,主要集中在一些改进和实验性的特性上。原创 2024-01-04 17:02:22 · 543 阅读 · 0 评论 -
JAVA进化史: JDK11特性及说明
JDK 11(Java Development Kit 11)是Java平台的一个版本,于2018年9月发布。这个版本引入了一些新特性和改进,以下是其中一些主要特性。JDK 11引入了一个新的HTTP客户端,用于替代过时的。新的HTTP Client提供了更现代、灵活的API,支持异步和同步操作。原创 2023-12-29 17:38:55 · 719 阅读 · 0 评论 -
JAVA进化史: JDK10特性及说明
JDK 10改进了G1垃圾收集器,引入了并行的Full GC(Full Garbage Collection)以提高垃圾回收性能。JDK 10更新了JRE的根证书集,使得Java应用程序能够更好地与最新的SSL/TLS证书进行交互。JDK 10引入了应用程序类数据共享,允许在不同的Java进程之间共享已经预先计算和存储的类元数据。JDK 10还包含一些其他的改进和优化,包括性能改进、新的命令行选项以及对标准库的更新。JDK 10引入了局部变量类型推断,允许在声明局部变量时使用。原创 2023-12-29 17:26:21 · 465 阅读 · 0 评论 -
JAVA进化史: JDK9特性及说明
JDK 9(Java Development Kit 9)是Java平台的一个重要版本,于2017年9月发布。该版本引入了一系列新的特性和改进,以使得Java更加模块化、可扩展、高性能。以下是JDK 9的一些主要特性,并带有相应的示例说明JDK 9引入了模块系统,将Java平台划分为一系列互相依赖的模块,这提高了代码的可维护性和可重用性。JDK 9引入了JShell,它是一个交互式编程环境,使得开发人员能够更轻松地测试Java代码片段。JDK 9引入了一系列改进的集合工厂方法,简化了创建不可变集合的过程。原创 2023-12-28 17:45:51 · 511 阅读 · 0 评论 -
JAVA进化史: JDK8特性及说明
JDK 8(Java Development Kit 8)是Java平台的一个重大版本,于2014年3月发布。该版本引入了许多令人期待的新特性,其中一些改变了Java语言的面貌,提供了更丰富、灵活和现代的编程体验。Lambda表达式是JDK 8引入的最引人注目的特性之一,它允许开发人员以更简洁的方式编写匿名函数。JDK 8引入了函数式接口,它是只包含一个抽象方法的接口。Lambda表达式可以用来实现这个唯一的抽象方法。Stream API 提供了一种新的抽象,让开发人员能够以声明式的方式处理集合数据。原创 2023-12-28 17:25:22 · 948 阅读 · 0 评论 -
JAVA进化史: JDK7特性及说明
JDK 7(Java Development Kit 7)是Java平台的一个重要版本,于2011年7月发布。这个版本引入了一系列的语言、库和虚拟机的改进,提升了Java的开发体验和性能。以下是JDK 7的一些主要特性,以及带有示例说明JDK 7中引入了对字符串在switch语句中的支持,使得开发人员能够更方便地根据字符串的值进行条件判断。JDK 7引入了Diamond语法,通过自动推断泛型类型,简化了泛型集合的创建过程。JDK 7引入了try-with-resources语句,使得资源的管理更加简便。原创 2023-12-28 16:52:07 · 1222 阅读 · 1 评论 -
JAVA进化史:JDK6特性及说明
JDK 6(Java Development Kit 6)是Java平台的一个重要版本,它于2006年12月发布。在这个版本中,引入了许多新特性和改进,使得Java编程更加强大和灵活。JDK 6引入了一些重要的编译器改进,其中最显著的是增强的注解处理。这使得开发人员能够更好地使用注解来简化代码,并提供更多的元数据。例如,可以使用注解来生成代码或配置项目。JDK 6引入了对动态语言的支持,通过Java规范请求(JSR)223,允许在Java应用程序中嵌入和执行脚本语言。原创 2023-12-28 16:44:17 · 572 阅读 · 0 评论 -
SpringCloudSleuth异步线程支持和传递
在使用Sleuth做链路跟踪时,默认情况下异步线程会断链,需要进行代码调整支持。原创 2023-10-17 17:59:35 · 591 阅读 · 1 评论 -
com.alibaba.fastjson.JSONException: can‘t create non-static inner class instance.异常处理
在使用JSON.parseArray(jsonStr, RmqSubGroup.class)做转换时,出现JSONException: can't create non-static inner class instance异常。原创 2023-10-16 16:36:58 · 572 阅读 · 0 评论 -
异常:java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;原因及处理
在使用自定义组件时,出现java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer;异常。原创 2023-09-28 16:29:35 · 2805 阅读 · 0 评论 -
java执行脚本java.lang.NoClassDefFoundError和Error: Could not find or load main class错误
在使用java执行命令执行脚本时,缺少jar包。使用-cp 引入依赖包时,出现。原创 2023-09-08 16:35:07 · 270 阅读 · 0 评论 -
线上服务动态修改loggers日志级别
线上服务一般为info级别,当需要查看线上服务的debug日志时,需要调整日志级别,一般需要修改配置重启,不符合可用性原则。原创 2023-09-07 18:31:03 · 240 阅读 · 0 评论 -
分布式事物实现方案及优缺点
实现分布式事务是一个复杂的任务,涉及到许多技术和概念。这是一种经典的分布式事务处理方法。它涉及到一个协调者(Coordinator)和多个参与者(Participants)。2PC 的问题在于它的严重阻塞性,以及在协调者或参与者发生故障时可能会导致一些问题。原创 2023-08-27 16:12:44 · 569 阅读 · 0 评论 -
Java自定义注解:增强代码表达力与可读性
创建一个简单的自定义注解,添加自定义元素,这些元素类似于接口中的方法,可以用于在注解使用时提供更多的信息。和priority,并为它们设置了默认值。在方法上添加@LizzMethod自定义注解,并设置了元素值。// 测试方法的逻辑使用反射来解析自定义注解的元素值,也可以将解析放在拦截器中处理。@Test// 假设我们有一个包含 @TestMethod 注解的类 MyClass}else{为测试代码添加标记,使得测试代码更加清晰易读。原创 2023-08-02 16:33:45 · 283 阅读 · 0 评论 -
使用JsonPath遍历替换json中的内容
当输入为一个json格式的结果集合时,需要将数据集合中某个对象的某个值替换处理为其他值时,如敏感数据加密。可以使用JsonPath组件,指定数据节点,进行批量处理。原创 2023-07-12 15:41:09 · 1374 阅读 · 0 评论 -
使用JsonPath字符串获取json内容
JSON 路径表示法(JSON Path)是一种用于在 JSON 数据中定位和访问特定值的表达式语言。它类似于 XPath 对于 XML 数据的作用。..[][,]原创 2023-07-12 11:34:10 · 1314 阅读 · 0 评论 -
常用版本号后缀SNAPSHOT/ALPHA/BETA/RC/RELEASE的含义
SNAPSHOT:是指“快照”版本,是一种特殊的版本,代表当前开发版本,可能包含一些临时的改动。每次构建时,Maven会自动下载最新的SNAPSHOT版本。 ALPHA:代表内部测试版本,通常只在开发团队内部使用; BETA:代表公测版本,已经相对稳定,但可能仍有一些bug; RC:代表发布候选版本,通常是发布正式版本之前的最后一个版本; RELEASE:代表正式版本,通常是不会再进行大的改动和更新。原创 2023-05-06 16:08:06 · 2219 阅读 · 0 评论 -
replaceAll特殊符号替换异常
在使用replaceAll对数据进行处理,出现不符合预期的情况。异常用例:想使用[xxx]占位符,对数据进行处理后变更预期结果是:112233执行结果却是11[2222222222]33。原创 2023-04-18 17:21:54 · 391 阅读 · 0 评论 -
中国大陆地区手机号运营商正则表达式
如何通过手机号识别所属运营商,移动、联通还是电信,2022年新增了广电运营上号段192。网上找缺斤少两,最后还是得自己来,细节就不说了,直接上代码。原创 2023-04-14 18:00:11 · 560 阅读 · 0 评论 -
idea修改项目编译jdk版本,解决maven加载jar组件失败的问题
在导入项目后,导致maven导入的jar也是一堆红线,就需要调整jdk的版本。原创 2023-04-14 15:24:00 · 352 阅读 · 0 评论 -
java.stream用法
JDK1.8加入Stream 提供了一种简洁而高效的方式来处理集合中的数据,其特点和优势包括延迟计算、支持链式调用、函数式编程、并行处理和能够处理无限数据流等。这些特性使得 Stream 成为 Java 中数据处理的重要工具之一。原创 2023-04-14 15:22:41 · 151 阅读 · 0 评论 -
面向对象设计原则之SOLID原则
即高层模块应该依赖于抽象,而不是具体的实现。接口隔离原则(Interface Segregation Principle,ISP):一个类不应该强制实现它不需要的接口,即一个接口应该只包含客户端需要的方法。单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个职责,即一个类只负责一种行为或功能,从而提高代码的可读性、可维护性和可测试性。通过遵循 SOLID 原则,可以使代码更加可读、可维护、可扩展和可重用,从而提高软件系统的质量和稳定性。原创 2023-04-06 13:49:51 · 511 阅读 · 0 评论 -
使用TreeSet和Comparable存储自动排序集合,降序、不去重方法
使用TreeSet 类可以自动根据元素的自然排序或指定的比较器进行排序,因此可以用来实现根据分数自动排序的集合。原创 2023-02-24 16:44:10 · 424 阅读 · 0 评论 -
Java中Pattern配正则表达式
Java中的Pattern类是用于创建正则表达式模式的类。正则表达式是一种强大的字符串匹配工具,它可以在文本中搜索、替换或提取特定的字符串模式。原创 2023-02-15 16:10:40 · 740 阅读 · 0 评论 -
编程思想、方法论和架构的类型及应用
事件驱动编程(Event-Driven Programming)是一种面向事件响应的编程模型,它的核心思想是将事件视为程序的基本组成单元,通过事件处理器和事件监听器的配对机制,以实现异步和非阻塞的事件处理。领域驱动设计(Domain-Driven Design,DDD):通过深入理解业务领域中的概念、规则和流程,将业务场景转化为一个可操作的领域模型,并将该领域模型作为软件开发的中心,来指导软件系统的设计和实。原创 2023-02-14 18:43:35 · 442 阅读 · 0 评论 -
启动WARN:This primary key of “id“ is primitive !不建议如此请使用包装类 in Class原因分析
项目启动时出现异常。keyType.isPrimitive(),当对象主键类型是原始类型时,报出错误提示。mybatis-plush框架对数据类型进行判断。将对象中的主键改为非原始类型即可。原创 2023-02-13 15:40:20 · 8016 阅读 · 2 评论 -
PgSql时间格式转换
数据中存入的数据是int类型,为timestamp时间戳格式如1671087614022,需要将数据进行可读性转换。原创 2022-12-16 18:29:50 · 7331 阅读 · 0 评论 -
Java Class类初始化加载顺序
了解class类初始化的顺序,便于实现相关应用的编码测试类原创 2022-12-09 16:35:28 · 314 阅读 · 0 评论 -
sonar findbugs:Write to static field from instance method
非静态方法对静态对象操作是不安全的。原创 2022-11-09 15:46:25 · 471 阅读 · 0 评论 -
List和Map初始化赋值方式
List和Map初始化赋值方式。原创 2022-08-17 10:52:06 · 149 阅读 · 0 评论 -
对mybatis执行的sql进行拦截查看修改
希望对数据库访问进行监控或控制时,一般通过两张方式进行。一是在数据库服务端增加访问控制,二是在数据库客户端进行访问控制。需要根据业务场景选择更优的方案。 自定义sql拦截器 使用注解开启sql修改...原创 2022-06-07 14:50:42 · 1461 阅读 · 2 评论 -
idea maven集成sonarqube组件
场景在持续集成过程中,需要用sonarqube进行代码质量检查,为了在开发过程中进快速检查,官方提供了一种集成开发的方式。这里主要使用maven集成方式。环境配置步骤1:maven环境配置,在maven的setting.xml的pluginGroups和profiles标签中增加如下内容。 <pluginGroups> <!-- pluginGroup | Specifies a further group identifier...原创 2022-05-20 18:45:29 · 1916 阅读 · 0 评论