自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

javaeEEse的博客

关注博主带您一起学习,学到干货都会方向给小伙伴!Thank!

  • 博客(72)
  • 收藏
  • 关注

原创 必须安装的 IDEA 插件,强烈推荐【安装及教程】

idea插件大全

2024-07-11 15:41:53 944

原创 springBoot实现无感刷新-双Token(实战)

Access Token:这是用户直接使用来访问资源的token。它的有效期较短,一旦过期,用户需要重新认证来获取新的access token。Refresh Token:Refresh token是用来在access token过期后重新获取新的access token的。它的有效期通常较长。

2024-07-04 17:40:10 916

原创 Java最新面试题(全网最全、最细、附答案)

在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以, Java 程序运行时相对来说还是高效的(不过,和 C、 C++,Rust,Go 等语言还是有一定差距的),而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。

2024-06-13 17:40:21 3584 8

原创 布隆过滤器-详解及使用

布隆过滤器是一个很长的二进制向量和一系列随机映射函数。可以用于检索一个元素是否在一个集合中。。理解为SET集合。布隆过滤器其内部维护了一个全为 0 的 bit 数组,需要说明的是,布隆过滤器有一个误判的概念,误判率越低,则数组越长,所占空间越大。误判率越高则数组越小,所占的空间多少。(关于误判后面会讲到)

2024-05-21 15:52:03 972

原创 IDEA安装通义灵码(太好用了)

通义灵码,是阿里云出品的一款基于通义大模型的智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/OpenAPI 的使用场景调优,助力开发者高效、流畅的编码。

2024-05-11 15:48:09 5684

原创 Nginx+Lua+OpenResty(详解及使用)

通俗:将负载变的均衡。负载(请求、工作任务)、均衡(算法 ,中间件)。高并发:负载均衡通过算法调整负载,尽力均匀的分配应用集群中各节点的工作量,以此提高应用集群的并发处理能力(吞吐量)。伸缩性:添加或减少服务器数量,然后由负载均衡进行分发控制。这使得应用集群具备伸缩性。高可用:负载均衡器可以监控候选服务器,当服务器不可用时,自动跳过,将请求分发给可用的服务器。这使得应用集群具备高可用的特性。安全防护:有些负载均衡软件或硬件提供了安全性功能,如:黑白名单处理、防火墙,防 DDos 攻击等。

2024-04-22 17:18:27 1660

原创 springCloudAlibaba集成sentinel实战(超详细)

​ 除了流量控制以外,对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块,可能是另外的一个远程服务、数据库,或者第三方 API 等。例如,支付的时候,可能需要远程调用银联提供的 API;查询某个商品的价格,可能需要进行数据库查询。然而,这个被依赖服务的稳定性是不能保证的。如果依赖的服务出现了不稳定的情况,请求的响应时间变长,那么调用服务的方法的响应时间也会变长,线程会产生堆积,最终可能耗尽业务自身的线程池,服务本身也变得不可用。

2024-04-11 16:35:10 2944

原创 springCloudAlibaba集成seata实战(分布式事物详解)

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、 和 XA 事务模式,为用户打造一站式的分布式解决方案。仓储服务:对给定的商品进行增删操作记录数量订单服务:根据采购者的需求创建订单账户服务:从用户账户中扣除余额、积分等在这套架构中,用户下单购买商品的业务,就需要三个服务来完成,每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题就没办法保证,Seata就是来进行解决这种问题的解决方案。

2024-04-08 17:17:49 1801

原创 springCloudAlibaba集成gateWay实战(详解)

​ Spring Cloud Gateway 基于Spring Boot 2.x、Spring WebFlux和Project Reactor,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。它的目标是替代Netflix Zuul,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控和限流。性能强劲:是Zuul的1.6倍功能强大:内置了很多实用的功能,例如转发、监控、限流等设计优雅,容易扩展。

2024-04-01 15:35:46 2155

原创 linux安装Redis且搭建主从、哨兵、集群以及使用(超详细)

​ Redis是以Key-Value形式进行存储的NoSQL数据库。​ Redis是使用C语言进行编写的。​ 平时操作的数据都在内存中,效率特高,读的效率110000/s,写81000/s,所以多把Redis当做缓存工具使用。​ Redis以solt(槽)作为数据存储单元,每个槽中可以存储N多个键值对。Redis中固定具有16384。理论上可以实现一个槽是一个Redis。每个向Redis存储数据的key都会进行crc16算法得出一个值后对16384取余就是这个key存放的solt位置。

2024-03-19 16:53:04 2275

原创 CompletableFuture使用详解(超详细)

CompletableFuture就是帮你处理这些任务之间的逻辑关系,编排好任务的执行方式后,任务会按照规划好的方式一步一步执行,不需要让业务线程去频繁的等待。比如说任务A,任务B,还有任务C。其中任务B还有任务C执行的前提是任务A先完成,再执行任务B和任务C。

2024-02-20 14:39:57 8301

原创 FutureTask应用&源码分析

FutureTask是一个可以取消异步任务的类。FutureTask对Future做的一个基本实现。可以调用方法区开始和取消一个任务。一般是配合Callable去使用。异步任务启动之后,可以获取一个绑定当前异步任务的FutureTask。可以基于FutureTask的方法去取消任务,查看任务是否结果,以及获取任务的返回结果。FutureTask内部的整体结构中,实现了RunnableFuture的接口,这个接口又继承了Runnable, Future这个两个接口。

2024-02-20 11:38:21 403

原创 Semaphone使用及源码讲解

sync,ReentrantLock是互斥锁,保证一个资源同一时间只允许被一个线程访问。Semaphore(信号量)保证1个或多个资源可以被指定数量的线程同时访问。底层实现是基于AQS去做的。Semaphore底层也是基于AQS的state属性做一个计数器的维护。state的值就代表当前共享资源的个数。如果一个线程需要获取的1或多个资源,直接查看state的标识的资源个数是否足够,如果足够的,直接对state - 1拿到当前资源。如果资源不够,当前线程就需要挂起等待。

2024-02-19 11:57:50 886

原创 CyclicBarrier使用及源码讲解

从名字上来看CyclicBarrier,就是代表。CyclicBarrier一般被称为栅栏。:让一个或多个线程达到一个屏障点,会被阻塞。屏障点会有一个数值,当达到一个线程阻塞在屏障点时,就会对屏障点的数值进行-1操作,当屏障点数值减为0时,屏障就会打开,唤醒所有阻塞在屏障点的线程。在释放屏障点之后,可以先执行一个任务,再让所有阻塞被唤醒的线程继续之后后续任务。:所有线程被释放后,屏障点的数值可以再次被重置。CyclicBarrier是一种同步机制,允许一组线程互相等待。

2024-02-19 11:51:43 902

原创 CountDownLatch使用以及源码讲解

CountDownLatch是一个同步工具类,它通过一个计数器来实现的,初始值为线程的数量。每当一个线程完成了自己的任务,计数器的值就相应得减1。当计数器到达0时,表示所有的线程都已执行完毕,然后在等待的线程就可以恢复执行任务。如果有三个业务需要并行处理,并且需要知道三个业务全部都处理完毕了。需要一个并发安全的计数器来操作。CountDownLatch就可以实现。给CountDownLatch设置一个数值。可以设置3。

2024-02-18 16:35:48 359

原创 线程安全的ArrayList (CopyOnWriteArrayList)

CopyOnWriteArrayList是一个线程安全的ArrayList。CopyOnWriteArrayList是基于lock锁和数组副本的形式去保证线程安全。在写数据时,需要先获取lock锁,需要复制一个副本数组,将数据插入到副本数组中,将副本数组赋值给CopyOnWriteArrayList中的array。

2024-02-18 15:26:58 595

原创 ConcurrentHashMap的使用以及源码分析

ConcurrentHashMap是线程安全的HashMapConcurrentHashMap在JDK1.8中是以CAS+synchronized实现的线程安全CAS:在没有hash冲突时(Node要放在数组上时)

2024-02-04 17:20:11 969 1

原创 深入解析线程池以及源码

线程池的目的就是为了提高效率,从线程池中拿线程,属于用户态操作;而从系统再去创建线程,涉及到用户态和内核态之间的切换,真正的创建是在内核态完成的。

2024-01-25 10:07:58 967

原创 深入解析阻塞队列BlockingQueue及源码(超详细)

一、基础概念1.1 BlockingQueueBlockingQueue 是 java.util.concurrent 包提供的用于解决并发生产者 - 消费者问题的最有用的类。1.1.1 队列类型:无限队列 (unbounded queue ) - 几乎可以无限增长有限队列 ( bounded queue ) - 定义了最大容量1.1.2 常见的4中阻塞队列ArrayBlockingQueue: 由数组支持的有界队列LinkedBlockingQueue: 由链接节点支持的可选有界队列

2024-01-15 16:38:23 1148

原创 深入解析各种锁(JAVA)

Java各种锁概念

2023-12-19 16:20:59 448

原创 快速掌握多线程,超详细(Java)

多线程是指:单个进程中同时运行多个线程。

2023-12-07 09:26:21 942

原创 RestTemplate的使用,简单清晰(Java)

/</</

2023-12-05 09:43:20 950

原创 JAVA-GC日志打印配置详解

当服务出现内存飙高、卡顿宕机等等情况,有可能因为GC问题,所以要有日志进行排查。4、复制日志命令在VM Options即可。5、linux启动Java命令。

2023-10-27 13:45:25 3326

原创 JVM常见的垃圾回收器(详细)

STW是Stop-The-World缩写: 是在垃圾回收算法执⾏过程当中,将JVM内存冻结丶应用程序停顿的⼀种状态。1、在STW 状态下,JAVA的所有线程都是停⽌执⾏的 -> GC线程除外2、一旦Stop-the-world发生,除了GC所需的线程外,其他线程都将停止工作,中断了的线程直到GC任务结束才继续它们的任务。3、STW是不可避免的,垃圾回收算法执⾏一定会出现STW,我们要做的只是减少停顿的时间GC各种算法优化的重点,就是减少STW(暂停),同时这也是JVM调优的重点。

2023-10-25 15:55:52 2376

原创 Java New对象分配内存流程

1.为什么要分配在栈上?通过JVM内存模型中,我们知道Java的对象都是分配在堆上的。当堆空间(新生代或者老年代)快满的时候,会触发GC,没有被任何其他对象引用的对象将被回收。如果堆上出现大量这样的垃圾对象,将会频繁的触发GC,影响应用的性能。其实这些对象都是临时产生的对象,如果能够减少这样的对象进入堆的概率,那么就可以成功减少触发GC的次数了。我们可以把这样的对象放在栈上,这样该对象所占用的内存空间就可以随栈帧出栈而销毁,就减轻了垃圾回收的压力。2.什么情况下会分配在栈上?

2023-10-24 15:27:37 500

原创 CPU乱序执行

首先我们要明白一点,不是cpu真的乱序执行,而是为了提交执行效率,但这个所谓的乱序执行的前提下是有依据的,在没有互相依赖的代码行里才有可能产生这种乱序执行的现象。这种情况当cpu执行A 的时候,会先去内存里读取A的值为1的数据,而这个读数据的过程,CPU会判断int B = 2;的代码有没有跟A有依赖关系,如果没有,会先执行B的代码行,等A啥时候读取完数据在告诉CPU读取完了,在执行A。如下代码就不可能产生乱序执行的现象,因为B是依赖A的,先有A在有B。

2023-10-18 14:53:05 440 2

原创 Java集成支付宝沙箱支付,详细教程(SpringBoot完整版)

Java集成支付宝沙箱支付,详细教程

2023-09-21 15:12:40 3578 2

原创 RabbitMQ快速上手及讲解

先附加下官网文档。

2023-08-31 15:08:52 1412

原创 介绍Server-Sent Events,以及使用,超级简单!

严格地说,HTTP 协议无法做到服务器主动推送信息。但是,有一种变通方法,就是服务器向客户端声明,接下来要发送的是流信息(streaming)。也就是说,发送的不是一次性的数据包,而是一个数据流,会连续不断地发送过来。这时,客户端不会关闭连接,会一直等着服务器发过来的新的数据流,视频播放就是这样的例子。本质上,这种通信就是以流信息的方式,完成一次用时很长的下载。SSE 就是利用这种机制,使用流信息向浏览器推送信息。它基于 HTTP 协议,目前除了 IE/Edge,其他浏览器都支持。

2023-08-23 14:03:27 299

原创 本地Nacos设置脚本命令启动

本地设计Nacos脚本启动

2023-04-22 11:41:40 1158 3

原创 Java实用工具类大全

Java使用工具类大全

2023-04-20 15:09:15 1461

原创 Java 对象拷贝与转换-org.mapstruct:mapstruct 包(@Mapper、@Mapping)的使用

最近在学习技术时候,发现一个特别好用的包,org.mapstruct:mapstruct,它是专门用来处理 domin 实体类与 model 类的属性映射的。报错案例:Unknown property “xxx” in result type xxx. Did you mean “null”?在转换类上添加注解:@Mapper(builder = @Builder(disableBuilder = true))如果想要在代码编写的时候有很好的提示的时候,也可以在pom.xml文件中加入相应的插件。

2023-02-03 11:13:24 4608

原创 详解JDK8中新的日期时间工具类,真的很好用

JDK 8中增加了一套全新的日期时间API,这套API设计合理,是线程安全的。新的日期及时间API位于 java.time 包中,下面是一些关键类。LocalDate :表示日期,包含年月日,格式为 2019-10-16LocalTime :表示时间,包含时分秒,格式为 16:38:54.158549300LocalDateTime :表示日期时间,包含年月日,时分秒,格式为 2018-09-06T15:33:56.750DateTimeFormatter :日期时间格式化类。

2022-09-12 14:20:25 1276

原创 @Async注解详解+实例

@Async注解详解+实例

2022-09-06 18:47:55 15834 4

原创 Spring Boot实现批量修改

Service接口3、Service实现类 4、利用ApiPost请求测试 目前我这里对应的数据库,修改catId2和3的sort值改为1,目前是0 发送请求,显示修改成功 catId2和3的sort值已被修改

2022-06-29 14:18:51 2604 2

原创 Java后台校验修改密码强度工具类

/** * @Author: Mr.ZJW * @Date: 2022-05-31 16:52 * @Description: 密码校验工具类 */public class PwdCheckUtil { public static String[] KEYBOARD_SLOPE_ARR = { "!qaz", "1qaz", "@wsx", "2wsx", "#edc", "3edc", "$rfv", "4rfv", "%tgb", "5tgb",

2022-05-31 17:13:34 570

原创 Java实现接口防篡改

文章目录一、pandas是什么?二、使用步骤1.引入库2.读入数据总结提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarni

2022-05-06 09:06:49 3886 3

原创 Java生成证书用HTTPS进行访问

文章目录一、CA证书是什么?1、 什么是CA?2、 什么是证书?3、 证书生成过程4、 将数字签名房价到数字证书上,变成一个签过名的数字证书二、Java生成证书1.进入JDK的bin目录下,然后输出CMD进入控制台2.生成keystore2.生成证书三、无证书测试四、配置证书一、CA证书是什么?1、 什么是CA?CA全称为Certificate Authority,可以翻译为证书颁发机构。主要功能为:证书发放、证书更新、证书撤销和证书验证。2、 什么是证书?证书指数字证书。数字证书又称为数字标

2022-05-04 15:55:18 3358

原创 Java生产验证码各种工具类

文章目录一、生成数字加减验证码二、糊涂工具类生产验证码三、Happy-captcha生产验证码提示:以下是本篇文章正文内容,下面案例可供参考一、生成数字加减验证码1、工具类:/** * @Author: Mr.ZJW * @Date: 2022-04-20 8:59 * @Description: 验证码工具类 */@Datapublic class ImageCode { //图形内容 public String code; //图片 public

2022-04-21 17:16:45 4931

原创 Java实现纯后台调用打印机并且打印操作

文章目录一、前言?二、模拟数据库打印1.DemoDto实体类2.打印根据类3.测试效果三、连接数据库查询数据1.需查询的实体类2.打印工具类3.业务代码4.测试一、前言?本篇讲解关于如何实现纯后台的打印操作,无前端代码,使用JAVA.AWT类实现。代码分为两个部分:打印直连数据库数据以及打印功能的实现。二、模拟数据库打印1.DemoDto实体类本demo的打印内容包括:标题、资产名称、型号、部门、责任人、启用日期和二维码图片。类定义如下:/** * @Author: Mr.ZJW * @D

2022-04-14 10:52:40 9971 7

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除