java
文章平均质量分 74
xixingzhe2
代码开发爱好者
展开
-
Reactor简述
Reactor是一个计算机编程模式,它在并发编程和网络编程中用于处理大量并发输入事件。在该模型中,一个中心调度组件(即Reactor)负责监听和分发来自多个客户端的事件到相应的处理器或回调函数。当有事件发生时,如网络连接请求、数据到达等,Reactor能够及时响应并高效地将这些事件分配给适当的处理逻辑进行执行。原创 2024-01-30 16:57:13 · 1075 阅读 · 0 评论 -
java中==和equals区别
是Object类中的一个方法,用于比较两个对象的内容是否相等。是Java中的基本比较操作符,用于比较两个变量的值是否相等。方法在比较对象时有着本质的区别。原创 2024-01-19 11:03:32 · 343 阅读 · 0 评论 -
header中的User-agent
获取设备信息的方式取决于您是在哪个平台上进行操作,以下是一些常见平台及其获取设备。原创 2024-01-08 15:53:17 · 958 阅读 · 0 评论 -
时间、空间复杂度
在实际应用中,我们通常更关注时间复杂度,因为它对算法的性能影响更大。然而,在某些情况下,例如处理大规模数据集时,空间复杂度也可能非常重要。原创 2023-11-30 14:59:22 · 114 阅读 · 0 评论 -
try-with-resources使用
任何实现。原创 2023-11-29 13:30:05 · 127 阅读 · 0 评论 -
Java数据结构之优先级队列(PriorityQueue)
队列:是一种FIFO(First-In-First-Out)先进先出的数据结构,对应于生活中的排队的场景,排在前面的人总是先通过,依次进行。优先队列:是特殊的队列,从“优先”一词,可看出有“插队现象”(优先即比较大小)。比如送进医院的患者,即便是按顺序到达的,生病更加严重的往往优先级也会更高。优先队列至少含有两。原创 2023-11-28 15:43:14 · 176 阅读 · 0 评论 -
java参数传递
将对象引用传递给方法时,实际上传递的是对象的引用而不是对象本身。因此,如果在方法内部更改了引用,那么原始对象不会受到影响。原创 2023-11-21 14:07:42 · 170 阅读 · 0 评论 -
java同步器
描述依赖关系thenApply() 把前面异步任务的结果,交给后面的FunctionthenCompose()用来连接两个有依赖关系的任务,结果由第二个任务返回描述and聚合关系thenCombine 任务合并,有返回值thenAccepetBoth 两个任务执行完成后,将结果交给thenAccepetBoth消耗,无返回值runAfterBoth 两个任务都执行完成后,执行下一步操作(Runnable)描述or聚合关系。原创 2023-11-17 10:24:15 · 95 阅读 · 0 评论 -
try catch finally注意事项
try-catch-finally 语句是 Java 中常用的异常处理机制,其中 finally 块用于在 try 块和 catch 块执行完毕后执行一些必要的清理操作,例如释放资源、关闭文件等。总之,try-catch-finally 语句是 Java 中常用的异常处理机制,使用时需要注意以上几点,以确保程序的正确性和稳定性。原创 2023-11-16 16:39:19 · 100 阅读 · 0 评论 -
人人都看得懂的正则表达式教程
编写验证规则最流行和最简单的方法就是正则表达式了,但唯一的一个问题是正则表达式的语法太隐晦了,让人蛋疼无比。很多开发者为了在项目中应用复杂的验证,经常要使用一些小抄来记住正则式的复杂语法和各种常用命令。在这篇文章中,我将试图让大家明白什么是正则表达式,以及如何更轻松地学习正则表达式。也许你是初学者,那以防万一,我先来讲讲什么是正则表达式吧:正则表达式可以帮助我们更好的描述复杂的文本...转载 2018-12-21 10:50:21 · 215 阅读 · 0 评论 -
支付通道简述
JSAPI时序图手机网站支付时序图。原创 2023-09-19 17:40:47 · 79 阅读 · 0 评论 -
判断时间段是否重叠
时间段1:start1(开始时间),end1(结束时间)时间段2:start2(开始时间),end2(结束时间)重叠条件为:start1 <= end2 && end1 >= start2。原创 2023-08-11 10:30:29 · 1421 阅读 · 0 评论 -
redis多字段分页排序
redis多字段分页排序原创 2023-03-24 11:53:34 · 806 阅读 · 0 评论 -
ThreadLocal使用
ThreadLocal使用原创 2023-03-02 11:02:32 · 1283 阅读 · 0 评论 -
限流-漏桶算法、令牌桶算法
限流-漏桶算法、令牌桶算法原创 2023-02-06 17:39:05 · 1844 阅读 · 0 评论 -
java AQS
java AQS原创 2023-01-30 11:25:10 · 46 阅读 · 0 评论 -
ArrayList扩容机制
ArrayList扩容原理原创 2023-01-13 15:59:01 · 496 阅读 · 0 评论 -
布隆过滤器
布隆过滤器原创 2023-01-09 18:25:36 · 428 阅读 · 0 评论 -
Java 泛型中 <? extends T> 与 <? super T> 的区别
泛型原创 2022-11-22 10:35:40 · 564 阅读 · 0 评论 -
多租户、组织架构
多租户-多层级原创 2022-10-10 13:59:31 · 2847 阅读 · 0 评论 -
logback自定义appender
logback自定义appender的使用场景原创 2022-09-17 22:27:48 · 2925 阅读 · 0 评论 -
腾讯验证码接入
图形验证码原创 2022-09-15 17:28:12 · 1634 阅读 · 0 评论 -
jeecg-boot简单使用
代码生成器原创 2022-09-09 15:50:48 · 19245 阅读 · 6 评论 -
微信公众号订阅消息
微信公众号订阅消息原创 2022-09-08 10:59:43 · 3920 阅读 · 0 评论 -
日志定期压缩、清除
为了平衡上面两个条件,我们可以压缩文件和保留一定时间(如7天)的历史文件。原创 2022-08-06 18:28:25 · 4894 阅读 · 0 评论 -
SPI机制
spi全称为 (Service Provider Interface),是JDK内置的一种服务提供发现机制。SPI是一种动态替换发现的机制,一种解耦非常优秀的思想。它是jdk提供给“服务提供厂商”或者“插件开发者”使用的接口,是一种扩展机制。 在面向对象的设计中,模块之间我们一般会采取面向接口编程的方式,而在实际编程过程过程中,API的实现是封装在jar中,当我们想要换一种实现方法时,还要生成新的jar替换以前的实现类。而通过jdk的SPI机制就可以实现,首先不需要修改原来作为接口的jar的情原创 2022-06-30 13:53:55 · 795 阅读 · 1 评论 -
双亲委派机制
当一个类加载器收到了类加载的请求的时候,他不会直接去加载指定的类,而是把这个请求委托给自己的父加载器去加载。只有父加载器无法加载这个类的时候,才会由当前这个加载器来负责类的加载。 Java中提供如下四种类型的加载器,每一种加载器都有指定的加载对象,具体如下 这四种类加载器存在如下关系,当进行类加载的时候,虽然用户自定义类不会由bootstrap classloader或是extension classloader加载(由类加载器的加载范围决定),但是代码实现还是会一直委托到boo原创 2022-06-28 17:45:22 · 373 阅读 · 0 评论 -
jdk命令使用场景
1、CPU 100%分析1.1 top查看进程pid3709进程占用cpu最高。1.2 使用jdk命令jstack获取此时的线程快照当前目录生成快照>jstack -l 3709 > ./jstack_result.txt1.3 top -Hp pid 查看子线程pid,可以看到CPU占用过高的线程[root@iZbp158rdu61wkh469o19kZ ~]# top -Hp 3709top - 00:08:12 up 1:41, 3 users原创 2022-05-01 18:33:18 · 1120 阅读 · 0 评论 -
maven可执行jar及加载文件
1、使用maven-assembly-plugin插件打包1.1 代码pom.xml<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId>原创 2021-07-10 16:28:14 · 161 阅读 · 0 评论 -
轮询、长轮询、长连接、websocket
Web端即时通讯技术:即时通讯技术简单的说就是实现这样一种功能:服务器端可以即时地将数据的更新或变化反应到客户端,例如消息即时推送等功能都是通过这种技术实现的。但是在Web中,由于浏览器的限制,实现即时通讯需要借助一些方法。这种限制出现的主要原因是,一般的Web通信都是浏览器先发送请求到服务器,服务器再进行响应完成数据的现实更新。 实现Web端即时通讯的方法:实现即时通讯主要有四种方式,它们分别是轮询、长轮询(comet)、长连接(SSE)、WebSocket。它们大体可以分为两类,一种是在HTTP基转载 2021-01-06 11:08:32 · 1460 阅读 · 1 评论 -
事务与异步脏数据问题
1、事务未提交,异步获取不到数据package com.spring.pro.service.impl;import java.util.concurrent.CompletableFuture;import java.util.concurrent.TimeUnit;import javax.annotation.Resource;import org.springframe...原创 2020-01-10 17:14:12 · 583 阅读 · 0 评论 -
线程池OOM错误
1、LinkedBlockingQueue报错package com.spring.pro.threadpool.completableFuture.youhua.test;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurr...原创 2020-01-03 19:54:37 · 2594 阅读 · 0 评论 -
java 变量过期实现
redis中的Expire命令用于设置 key 的过期时间,key 过期后将不再可用。不过有些变量我们不需要设置到redis中,只要存到本地就可以了,也需要过期时间,下面是我的实现逻辑,可供大家参考。1、实现package com.spring.pro.model;/** * @Title: ExpireModel.java * @ProjectName com.sprin...原创 2019-12-25 11:35:27 · 3957 阅读 · 1 评论 -
spring boot jar读取文件
1、配置文件位置Person.xlsx放在/src/main/resources目录下2、错误写法String file=ImportExcelTest.class.getResource("/Person.xlsx").getFile();在本地测试时,可以正常访问到。打包放到服务器,会报错java.io.FileNotFoundException: file:/pa...原创 2019-12-24 17:02:11 · 146 阅读 · 0 评论 -
fastjson泛型序列化
1、需要序列化类/** * @Title: ReqIn.java * @Package com.spring.pro.utils.fastjson * @Description: * @author ybwei * @date 2018年10月8日 上午11:23:44 * @version V1.0 */public class ReqIn<...原创 2018-10-08 12:04:30 · 2051 阅读 · 0 评论 -
断点续传文件
import java.io.BufferedOutputStream;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.Htt...原创 2018-09-10 18:06:00 · 223 阅读 · 0 评论 -
java 密码扩展无限制权限策略文件
开发十年,就只剩下这套Java开发体系了 >>> 因为某些国家的进口管制限制,Java发布的运行环境包中的加解密有一定的限制。比如默认不允许256位密钥的AES加解密,解决方法就是修改策略文件。官方网站提供了JCE无限制权限策略文件的下载:JDK6的下载地址: http://www.oracle.com/technetwork/java/javas...原创 2018-05-11 15:36:00 · 325 阅读 · 0 评论 -
总结:JDK1.5-JDK1.8各个新特性
开发十年,就只剩下这套Java开发体系了 >>> JDK各个版本的新特性 以下介绍一下JDK1.5版本到JDK1.7版本的特性及JDK1.8主要部分特性。仅供参考。JDK1.5新特性 1:自动装箱与拆箱:自动装箱:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。自动拆箱:每当需要一个值时,被装箱对象中的值就被自动地提取出来,...原创 2018-05-09 13:37:00 · 282 阅读 · 0 评论 -
高并发与多线程区别
开发十年,就只剩下这套Java开发体系了 >>> 1、高并发 高并发是一种状态,如果大量请求访问网关接口。这种情况会发生大量执行操作,如数据库操作、资源请求、硬件占用等。这就需要对接口进行优化,而多线程是处理高并发的一种手段。2、多线程 是一种异步处理的一种方式,在同一时刻最大限度的利用计算机资源。...原创 2018-04-28 17:20:00 · 3838 阅读 · 0 评论 -
什么是copyonwrite容器
开发十年,就只剩下这套Java开发体系了 >>> CopyOnWrite容器即写时复制的容器。通俗的理解是当往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是可以对CopyOnWrite容器进行并发的读,而不需要加锁,因为当前容器不会...原创 2017-09-28 07:57:00 · 1261 阅读 · 0 评论