![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 52
野生绿箭侠
曾经很长,一切难讲。
展开
-
thingsboard v3.7 win编译相关问题记录
【IoT平台】thingsboard v3.7 windows 平台源码启动相关过程记录原创 2024-07-07 18:42:54 · 344 阅读 · 0 评论 -
Nacos Namespace 未授权访问漏洞
Nacos Namespace 未授权访问漏洞原创 2024-04-08 12:14:17 · 1025 阅读 · 0 评论 -
使用 ZipArchiveInputStream 读取压缩包内文件总数
使用 ZipArchiveInputStream 读取压缩包内文件总数原创 2024-03-15 16:35:27 · 1532 阅读 · 0 评论 -
自定义 mybatis-plus 拦截器, 用于转义模糊查询参数中的特殊字符
自定义 mybatis-plus 拦截器统一处理转义模糊查询参数中的特殊字符,包括自定义的 sql 语句原创 2024-03-01 10:17:21 · 989 阅读 · 0 评论 -
当集合存在符合数据时,修改该数据后所有数据状态
当集合存在符合数据时,修改该数据后所有数据状态原创 2023-04-02 14:08:36 · 22691 阅读 · 1 评论 -
递归处理组织的几种情况
递归处理组织的几种情况原创 2022-07-02 09:07:24 · 22077 阅读 · 0 评论 -
来啦~ 使用 EasyExcel 导出时进行数据转换系列新篇章!
使用 EasyExcel 导出时进行数据转换系列新篇章!!!原创 2022-07-01 17:32:13 · 24521 阅读 · 0 评论 -
中小型项目手撸过滤器实现认证与授权
中小型项目通过手撸过滤器实现认证与授权原创 2022-07-01 14:25:42 · 20014 阅读 · 0 评论 -
Java 实现日志文件监听并读取相关数据
Java 实现日志文件监听并读取相关数据项目需求由于所在数据中台项目组需要实现监听文件夹或者日志文件并读取对应格式的脏数据的需求,以便在文件、文件夹发生变化时进行相应的业务流程;所以在这里记录下相关业务的实现及技术选型。Apache Commons-IO首先需要添加对应依赖:<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> &原创 2022-05-23 21:53:38 · 10740 阅读 · 0 评论 -
Dubbo SPI 源码解析
Dubbo SPI 源码解析 简介 SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。SPI 机制在第三方框架中也有所应用,比如 Dubbo 就是通过 SPI 机制加载所有的组件。不过,Dubbo 并未使用 Java 原生的 SPI 机制,而是对其进行了增强,转载 2022-04-30 23:37:57 · 1705 阅读 · 0 评论 -
Java 面试题分享
基础 OOM出现的几种情况堆内存溢出虚拟机栈和本地方法栈溢出运行时常量池溢出方法区溢出微服务优缺点每个服务基本上仅关注一个业务每个服务可由不同 团队开发松耦合,可扩展可以有不同语言运维成本过高、复杂度高、服务间通信影响性能Spirng和SpringBoot区别SpringBoot基于Spring,是对它的扩展,消除了它的复杂性SpringBoot是约定大于配置,Spring是配置优先TCP和UDP的区别区别TCPUDP是否连接面向连接无连接.原创 2022-04-30 22:24:10 · 5108 阅读 · 0 评论 -
内网环境下,Linux rz 命令离线安装
内网环境下,Linux rz 命令离线安装 前言 最近几天在公司的云服务器上部署项目,但是我用 SecureCRT 却不支持上传和下载,提示没有找到rz命令。在这里记录一下如何安装rz/sz命令的方法。下载地址:https://pan.baidu.com/s/19n2FqIpNcmBKNnrwnZqvoQ?pwd=64ej 如何安装 使用 sftp 工具把安装文件上传到任意目录下;然后使用 tar zxvf 命令解压对应的压缩包。接下来我们使用 cd 命令进入解压后的文件夹:然后执行:./原创 2022-04-28 22:27:07 · 3899 阅读 · 0 评论 -
Git 命令行代码回退
Git 命令行代码回退撤销工作区代码git checkout -- <file> 撤销暂存区代码将暂存区代码撤销到工作区,git reset HEAD将工作区的代码撤销撤销本地仓库代码git reset --hard <版本号>可以使用 HEAD^ 来描述版本,一个 ^ 表示前一个版本,两个 ^^ 表示前两个版本,以此类推也可以使用数字来代替 ^,比如说前 100 个版本可以写作 HEAD~100也可以直接写版本号,表示跳转到某一个版本处。我们每次提交成功后原创 2022-04-25 14:47:20 · 2473 阅读 · 0 评论 -
线程池的 execute() 方法是如何执行的?
线程池的 execute() 方法是如何执行的? 执行流程 一般情况下,我们使用线程池经常会用到它的 execute() 方法去提交任务,那么你知道它的执行流程吗?我们首先来看下源码实现:public void execute(Runnable command) { if (command == null)  原创 2022-03-16 09:12:53 · 4013 阅读 · 0 评论 -
使用 Redis 实现自增流水号
使用 Redis 实现自增流水号 场景需求 项目上有个场景是客餐申请审核以后需要生成一个流水号,规则为:202202150001,202202150002,qian'几位为年月日,后四位依次递增。想到 Redis 是基于内存操作的,而且速度比较快,也不占用数据库资源。于是便采用 Redis 实现的方式。 代码实现 形成规则工具类:/** * @author Greenarrow * @date 2022-02-15 8:01&原创 2022-02-15 09:28:03 · 4927 阅读 · 0 评论 -
Spring 中常见的几个容器接口及具体的实现类
Spring 中常见的几个容器接口及具体的实现类 前言 Spring 内部提供了很多表示 Spring 容器的接口和对象,我们今天来看看几个比较常见的容器接口和具体的实现类。 BeanFactory 接口 该接口源码在此包下,有兴趣的童鞋和自行查阅了解。org.springframework.beans.factorySpring 容器中极具代表性的容器就是 BeanFactory 接口,该接口是Spring 容器的顶层接口,提供了容器的基本功能。我们来分析下源码,看看常用的几个方法。/**原创 2022-01-18 20:42:40 · 1199 阅读 · 0 评论 -
Java 中 Integer 源码学习之缓存池了解
Java 中 Integer 源码学习之缓存池了解 面试题 new Integer(123) 与 Integer.valueOf(123) 的区别?new Integer(123) 每次都会新建一个对象;Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。 Integer a = new Integer(125);&nbs原创 2022-01-13 14:29:24 · 519 阅读 · 0 评论 -
Java 中优雅的参数校验方法学习
Java 中优雅的参数校验方法学习简单了解Spring 官方在 SpringBoot 文档中,关于参数校验(Validation)给出的解决方案是这样的:The method validation feature supported by Bean Validation 1.1 is automatically enabled as long as a JSR-303 implementation (e.g. Hibernate validator) is on the classpath. This原创 2021-12-01 19:40:57 · 1331 阅读 · 0 评论 -
使用 EasyExcel 导出时自定义支付类型转换
使用 EasyExcel 导出时自定义支付类型转换 夜坐听风 书接上文说到,我们通过 操作 EasyExcel 转换器对导出时的时间类型做了处理;本文将通过自定义类型转换器对导出时的支付类型进行相关操作。 昼眠听雨 支付类型枚举类:@AllArgsConstructor@Getterpublic enum PayTypeEnum { WX_WITHOUT_PWD_PAY(1, "微信无感支付"), &n原创 2021-11-28 20:25:17 · 1109 阅读 · 2 评论 -
面试官问我:多个 List 如何取交集、并集、去重并集、差集?
面试官问我:多个 List 如何取交集、并集、去重并集、差集? 为什么要写在文章最前面 因为如果 List 里面装的是对象,一定要重写 equals 和 hashcode 方法(都是 Object 类下面的方法); 不然比较的是堆内存地址,那么本文也就毫无意义了。 正文开始了 一般情况下,Java操作 List 取交、并集可以采用 apache.commons 包下的 ListUtils 的 removeAll、retainAll 等操作,不过这也破坏了原始的 List对象,如果采用 Java8新特原创 2021-09-27 16:21:51 · 2005 阅读 · 2 评论 -
用Stream流操作List集合去除重复对象的重复属性
用Stream流操作List集合去除重复对象的重复属性 概要 日常开发中,我们可能会遇到这样一种情况,需要对数据库查询出来的数据进行一个二次处理,从而达到我们需要的数据结构。 正文 List<UserInfo> list = new ArrayList<>(); UserInfo u1 = new Use原创 2021-09-23 10:20:44 · 6043 阅读 · 3 评论 -
设计模式手册分享
设计模式手册分享下载地址: 设计模式手册.提取码:yyds原创 2021-08-09 10:02:23 · 844 阅读 · 0 评论 -
Java API 文档汉化版
Java API 文档汉化版分享链接: Java API 文档.提取码:yyds原创 2021-08-09 09:59:47 · 3514 阅读 · 4 评论 -
Quartz开发指南推荐下载
内容截图:下载地址: Quartz开发指南.提取码:yyds原创 2021-08-04 08:01:34 · 905 阅读 · 0 评论 -
汇编语言推荐
内容简介:本书具有如下特点:采用了全新的结构对课程的内容进行组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索;在深入本质的层面上对汇编语言进行讲解,对关键环节进行深入的剖析。书籍截图:下载地址:汇编语言第四版.提取码:yyds...原创 2021-08-03 14:04:03 · 1008 阅读 · 0 评论 -
Java并发编程的艺术下载
本书简介并发编程领域的扛鼎之作,作者是阿里和1号店的资深Java技术专家,对并发编程有非常深入的研究,《Java并发编程的艺术》是他们多年一线开发经验的结晶。本书的部分内容在出版早期发表在Java并发编程网和InfoQ等技术社区,得到了非常高的评价。它选取了Java并发编程中最核心的技术进行讲解,从JDK源码、JVM、CPU等多角度全面剖析和讲解了Java并发编程的框架、工具、原理和方法,对Java并发编程进行了最为深入和透彻的阐述。《Java并发编程的艺术》内容涵盖Java并发编程机制的底层实现原理.原创 2021-07-29 14:40:40 · 1174 阅读 · 0 评论 -
最近线上发生的几个坑
最近线上发生的几个坑黑帐篷的毡片某天的下午工作时间,我听着轻音乐在写业务(其实是在摸鱼),突然看到群里风控小组有人@我,内心惊呼:难道项目出问题了?打开文件查看,原来是 Nacos 的问题。煮茶的残火问题 1: Nacos 竟然没有配置权限认证!,这个错误属实不应该,只能屁颠屁颠去改了。其实操作起来也简单,本项目 Nacos 是单机版,直接修改 Nacos 中的 conf 文件夹下面的 application.properties 配置文件。官方文档是这么描述的:注意N原创 2021-07-21 16:52:08 · 1529 阅读 · 0 评论 -
R先生一步步教你用EasyExcel导出包含多图片的Excel
R先生一步步教你用EasyExcel导出包含多图片的Excel光与光之间的黑暗,路人永不得知书接上文说到,R先生之前有写过一篇用EasyExel导出包含图片的Excel文件,由于在官方文档并没有找到多图片导出的demo,在GitHub也找了找,也有人提到过这个问题,但并没有找到对应的解决方案。后来发现有同事用POI实现了复杂报表和多图片的功能,说到这个事,后期也间接导致了我使用EasyExcel无法导出的Bug,不过好在R先生已经解决了。R先生所在的项目组对Excel多图片报表的需求还是挺大的,由原创 2021-07-19 08:15:52 · 5415 阅读 · 17 评论 -
教你用EasyExcel导出包含图片列的excel
教你用EasyExcel导出包含图片列的excel前情概要众所周知,导入及导出功能在后台服务中很常见,博主目前参与的这个项目就有多Excel的导入和导出,但是在我昨天完成需求的时候,突然发现项目里目前的Excel工具类无法满足的我的业务需求。所以在参考EasyExcel官方文档的情况下,昨天经历千辛万苦完成了Excel中某几列是图片的导出(原谅我是个菜b)。正文来啦首先需要导入EasyExcel的maven依赖:<dependency> <groupId>com原创 2021-06-10 08:26:06 · 5349 阅读 · 7 评论 -
设计模式速记
设计模式速记工厂方法模式工厂方法模式(Factory Method):定义一个创建对象的接口,但由子类决定需要实例化哪一个类。 工厂方法使得子类实例化的过程推迟速记关键词: 动态生产对象抽象工厂模式抽象工厂模式(Abstract Factory):提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类速记关键词: 生产成系列对象构建器模式构建器模式(Builder):将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示速记关键词: 复杂对象构造转载 2021-06-02 14:18:19 · 1238 阅读 · 0 评论 -
Spring MVC处理器拦截器
Spring MVC 处理器拦截器是什么?HandlerInterceptor是Spring提供的用于拦截处理器handler(如HandlerMethod)的扩展接口,类似于Servlet的过滤器(Filter),是Spring MVC的核心组件之一。定义(Definition)Spring提供了HandlerInterceptor及其支持异步的扩展AsyncHandlerInterceptor两个处理器拦截器接口,其定义分别如下:HandlerInterceptorpackage 原创 2021-05-27 09:47:54 · 1800 阅读 · 0 评论 -
SpringAOP之个人理解
1.什么是Spring AOP? 影视明星都有助理,明星最重要的事是参加各种影视剧集的演出以及出席各种活动,其他事不用关注,谈合作、片酬等这些事统统交给助理去做; 有一天, 明星退出娱乐圈了,就和这个助理和平分手了。 这就是AOP,每个人各司其职,灵活组合,达到一种可配置的、可插拔的程序结构。 AOP的实现原理就是代理模式,在程序中也是如此,通过代理,可以详细控制访问某个或者某类对象的方法,在调用这个方法钱做前置处理,调用这个方法后做后置处理。2.什么是代理模式?.原创 2021-04-02 08:29:47 · 2839 阅读 · 0 评论 -
Spring Data JPA学习笔记
Spring Data JPA笔记Spring Data JPA 定义接口继承自JpaRepository就具备了基础的crud功能,不需要写实现类。如何实现:CGlib 在spring-data-jpa内部,有一个类,叫做SimpleJpaRepository这个类是实现了JpaRepository接口,在同一个包下面有UserRepository,但是没有UserRepositoryImpl这个类的话,在运行时期UserRepository这个接口的实现就是上面的SimpleJpaReposito原创 2021-03-29 20:28:03 · 3033 阅读 · 0 评论 -
简单聊一聊Java中的Unsafe类
简单聊一聊Java中的Unsafe类在阅读AtomicInteger的源码时,看到了这个类:sum.msic.Unsafe,之前从没见过。所以花了点时间研究了下,下面这篇文章主要给大家介绍了关于Java中Unsafe类的相关资料。Unsafe类介绍Unsafe类是在sun.misc包下,不属于Java标准。如图所示:但是很多Java的基础类库,包括一些被广泛使用的高性能开发库都是基于Unsafe类开发的,比如Netty、Hadoop、Kafka等。使用Unsafe可用来直接访问系统内存资源并进行原创 2021-01-27 14:18:20 · 3083 阅读 · 0 评论 -
RabbitMQ资料
链接: https://pan.baidu.com/s/1bJokIfKxBHEsNyYHyODkqw提取码:eyqg原创 2021-01-04 11:22:26 · 3355 阅读 · 0 评论 -
Java四大元注解介绍
Java四大元注解介绍什么是元注解?元注解就是注解到注解上的注解。它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: @Retention、@Documented、@Target、@Inherited,这些类型和它们所支持的类在java.lang.annotation包中可以找到。如图所示:接下来我们看一下每个元注解的作用和相应分参数的使用说明。@Documented@Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共原创 2020-12-31 14:34:13 · 3673 阅读 · 0 评论 -
Windows下RocketMQ安装
Windows下RocketMQ安装教程下载地址http://rocketmq.apache.org/dowloading/releases/下载解压以后,进入目录bin下面,在当前目录打开cmd命令行窗口,执行以下命令:1.mqnamesrv启动命令:start mqnamesrv.cmd2.mqbroker启动命令:start mqbroker.cmd -n 127.0.0.1:9876autoCreateTopicEnable=true至此,算是启动成功。...原创 2020-12-30 16:05:09 · 3988 阅读 · 0 评论 -
JVM系列之垃圾回收算法(一)
JVM系列之垃圾回收算法(一)标记阶段:引用计数法简介 对每个对象保存一个整型的引用计数器属性,用于记录被对象引用的情况。 被对象引用了就+1 引用失效就-1 0表示不可能再被使用,可进行回收优点 1.实现简单,垃圾便于辨识 2.判断效率高,回收没有延迟性缺点 1.需要单独的字段存储计数器,增加了存储空间的开销 2.每次赋值需要更新计数器,伴随加减法操作,增加了时间开销 3.无法处理循环引用的情况,是致命缺陷,导致Java的垃圾回收器中没有使用这类算法小结原创 2020-12-28 14:30:25 · 4496 阅读 · 0 评论 -
Object类下面的一些方法详解
Object类下面的一些方法详解1.Object() Object类的构造方法。2.registerNatives() 为了使JVM发现本机功能,他们被一定的方式命名。例如,对于java.lang.Object.registerNatives,对应的C函数命名为Java_java_lang_Object_registerNatives。通过使用JNI函数RegisterNatives可以命名任何你想要的C函数 。3.clone() 用来另存一个当前存在的对象。只有实现了Cloneable原创 2020-12-05 21:22:45 · 4739 阅读 · 0 评论 -
插入排序代码入门
插入排序二话不说上代码:public static void sort (int[] array){for(int i=1; i<array.length;i++){ int insertValue =array[i];int j=i-1;//从右向左比较元素的同时,进行元素复制for(;j>=0&& insertValue<array[j];j–){array[j+1]=array[j];}//insertValue的值插入适当位置array[j+1原创 2020-12-04 15:07:44 · 4500 阅读 · 0 评论