自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我有故人折剑去,斩尽春风不曾归

绿蚁新醅旧 红泥小火炉

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

原创 layui 表格(table)合计 取整数

提示:谨慎修改源码layui table.js 路径 ./static/js/layui/lay/modules/table.jsi||e:e// 原代码示例:这样加了totalRowType:'int’的就会取整数,而不加的合计取两位小数两种可以同时存在。

2023-11-12 22:16:19 1374 2

原创 Hutool Excel导出 配置宽度自适应 工具类

一、Hutool依赖-- Excel导出、导入-->import org/*** Excel导出自适应宽度工具类/*** 自适应宽度(中文支持)* @param size 因为for循环从0开始,size值为 列数-1//当前行未被使用过 if(sheet . getRow(rowNum) == null) {} else {= null) {} } }/*** Excel导出自适应宽度工具类/*** 自适应宽度(中文支持)

2023-11-12 21:53:52 357

原创 hutool ExcelUtil导出excel二级表头

【代码】hutool ExcelUtil导出excel二级表头。

2023-11-11 20:08:29 1331

原创 万网查公网IP地址

如果是内网,会显示两个IP地址;如果是公网,会直接显示公网IP地址。这个可以侦测你的IP地址是内网还是公网IP。

2023-10-01 20:40:57 589

原创 natapp内网穿透使用教程

11.将natapp分配的网址(上图Forwarding ),鼠标选定然后复制下来(选定之后单击鼠标右键),在浏览器中访问,可以看到内网穿透成功了!5.根据您的本机下载对应的客户端,比如我的本机是win10,64位,则下载Windows 64位的客户端。6.下载之后,解压至任意目录,得到natapp.exe (linux下无需解压,直接 wget)7.取得authtoken 在网站后台,我的隧道处,可以看到刚才购买的隧道。9.windows下,直接双击natapp.exe 即可.1.首先在本站注册账号。

2023-08-09 22:52:26 179

原创 java发送短信验证码《工具类》

就是申请短信服务的平台是做什么的?

2023-07-27 13:26:26 375

原创 搞定HashMap

HashMap隶属于Java中集合这一块,我们知道集合这块有list,set和map,这里的HashMap就是Map的实现类,那么在Map这个大家族中还有哪些重要角色呢?

2023-07-05 12:41:55 106

原创 多线程、锁、并发关键字

如上图所示,所有线程的共享变量都存储在主内存中,每一个线程都有一个独有的工作内存,每个线程不直接操作在主内存中的变量,而是将主内存上变量的副本放进自己的工作内存中,只操作工作内存中的数据。虽然每次获取num值的时候,也就是执行上述第一步的时候,都拿到的是主内存的最新变量值,但是在进行第二步num+1的时候,可能其他线程在此期间已经对num做了修改,这时候就会触发MESI协议的失效动作,将该线程内部的值作废。但是在多线程的场景下就不一定了。如果内存地址里面的值和A的值是一样的,那么就将内存里面的值更新成B。

2023-07-05 12:35:49 119

原创 多线程00

答:ThreadLocal 为每一个线程维护变量的副本,把共享数据的可见范围限制在同一个线程之内,因此 ThreadLocal 是线程安全的,每个线程都有属于自己的变量。

2023-07-01 09:21:27 124

原创 AOP日志

AOP(面向切面编程)是一种编程思想,可以通过在代码中定义切面(Aspect),来实现对特定方法的拦截和增强。4.定义增强逻辑:在切面类中,定义增强逻辑,即在切入点前后执行的操作。1.导入相关依赖:首先,需要导入AOP框架的相关依赖,例如Spring AOP或AspectJ。2.定义切面:创建一个切面类,用于定义切入点和增强逻辑。5.配置AOP:通过注解或XML配置,将切面类与目标类进行关联,以实现AOP拦截和增强。3.定义切入点:在切面类中,使用注解或XML配置来定义切入点,即目标方法的执行位置。

2023-06-28 10:48:10 293

原创 WebSocket

WebSocket 事HTML5开始提供的一种在单个TCP连接上进行的双工通讯的协议,可以在html页面直接使用。WebSocket使用客户端何服务器之间的数据交换变得更加简单,允许服务端主动向客户端推动数据。在WebSocketAPI中,浏览器和服务器只需完成一次握手,两者之间直接可以建立持久性的连接,并进行双向数据传输。

2023-06-27 17:22:52 646

原创 JVM优化00

MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。官网地址:https://www.eclipse.org/mat/

2023-06-21 11:10:37 1094

原创 JVM图解

概览JVM运行时数据区主要包括以下几个部分:程序计数器、虚拟机栈、本地方法栈、方法区、堆;其中 栈是运行时的单位,而堆是存储的单位!

2023-06-20 17:35:31 800

原创 Java TheadLocal内存泄漏

而此时的t1是强引用指向了Threadlocal,所以此时不会发生问题,即使gc发生也不会,但是如果t1被置空了(t1 = null),那么就表示key中包含的threadlocal只有一个弱引用指向了,那么在垃圾回收器来回收时会将这个key回收掉,注意此时的这个key指的是传递给了父类的ThreadLocal,所以如果ThreadLocal被回收了的话那么就表示此时的key直接为null了。在一个方法的内部有一个强引用,这个引用保存在Java栈中,而真正的引用内容(Object)保存在Java堆中。

2023-06-19 20:17:09 301

原创 BIO-NIO-AIO案例

1、缓冲区(Buffer):实际上是一个容器,是一个特殊的数组,缓冲区对象内置了一些机 制,能够跟踪和记录缓冲区的状态变化情况。Channel 提供从文件、网络读取数据的渠道, 但是读取或写入的数据都必须经由 Buffer,如下图所示在 NIO 中,Buffer 是一个顶层父类,它是一个抽象类,常用的 Buffer 子类有:ByteBuffer,存储字节数据到缓冲区ShortBuffer,存储字符串数据到缓冲区CharBuffer,存储字符数据到缓冲区IntBuffer,存储整数数据到缓冲区。

2023-06-19 11:56:55 441

原创 基于python3.9.2环境CentOS7安装pycorrector

安装时会询问是否同意,输入 y 即可。

2023-06-17 23:14:32 197

原创 GC垃圾回收

程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存资源,最终将导致内存溢出,所以对内存资源的管理是非常重要了。

2023-06-17 22:28:15 1020

原创 BTree和B+Tree详解

B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。

2023-06-14 10:21:48 4430

原创 数据库索引及优化

1、对于单表查询,一定要根据 where 后面的字段建立索引,遇到有 、!= 这样的关系运算符,会使已经建完的索引失效2、对于双表查询,左外连接只会因为右表的索引而被优化,右外连接只会因为左表的索引而被优化,内连接则因为两个表的索引都可以被优化3、对于三表查询,则根据是左连接对右边的连接建立索引,根据右连接对左边的连接建立索引。

2023-06-12 18:15:54 1372

原创 JVM图解

概览JVM运行时数据区主要包括以下几个部分:程序计数器、虚拟机栈、本地方法栈、方法区、堆;其中 栈是运行时的单位,而堆是存储的单位!

2023-06-12 09:19:57 1514

原创 08SpringCloud 幂等性

举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣了钱,流水记录也变成了两条,再或者新增用户表单注册时,用户反复提交表单.当然,『先删除 token』也有缺点,如果先删除 token 成功,而随后执行业务逻辑失败,那么需要再返回信息中告知请求方,在重新获得 token,而不能/无法重复利用之前的 token。其实,这里的 token 起到的就是全局唯一 ID 的作用。

2023-06-08 20:10:19 352 1

原创 07SpringCloud Gateway服务网关

Spring Cloud Gateway 基于 Spring Boot 2,是 Spring Cloud 的全新项目。Gateway 旨在提供一种简单而有效的途径来转发请求,并为它们提供横切关注点。路由 Route:路由是网关最基础的部分,路由信息由一个 ID 、一个目的 URL 、一组断言工厂和一组 Filter 组成。如果路由断言为真,则说明请求的 URL 和配置的路由匹配。断言 Predicate:Java 8 中的断言函数。

2023-06-07 15:31:59 842

原创 06SpringCloud rabbitmq安装

说明:请使用资料里提供的CentOS-7-x86_64-DVD-1810.iso 安装虚拟机.

2023-06-04 16:08:56 391

原创 05SpringCloud 分布式事务seata

在学习分布式事务之前,务必要知道,分布式事务不可能100%完美解决问题!只能尽量提高成功概率!让这个成功概率尽量接近99.999%,为了达到这个目的,甚至加入人工。

2023-06-03 09:33:03 224

原创 04SpringCloud 消息中间件

MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信,在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。

2023-05-31 19:41:32 935

原创 03SpringCloud Docker

(1)从VM与Docker框架中,直观上VM多了一层Guest OS,同时Hypervisor会对硬件资源进行虚拟化,docker直接使用硬件资源,所以资源利用率相对docker低。(2)openstack能够以10台/min的速度创建虚拟机,在docker面前就弱爆了,因为docker是利用宿主机的系统内核,所以可以做到在几秒钟之内创建大量容器,它们的启动速度是在数量级上的差距。Docker的每个隔离环境是进程级的,每个守护进程共用操作系统内核,在隔离环境中打包运行服务必要的依赖。

2023-05-30 20:27:05 535

原创 02SpringCloud Nacos注册中心和配置中心与Sentinel服务熔断和流控

​ 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。源码地址:https://github.com/alibaba/Sentinel官方文档:https://github.com/alibaba/Sentinel/wikiSpring Cloud Alibaba Sentinel 同时兼具了熔断器和流控的功能。

2023-05-24 20:02:28 1587

原创 01SpringCloudRibbon负载均衡

Hystrix,英文意思是豪猪,全身是刺,看起来就不好惹,是一种保护机制。它是容错组件,Hystrix也是Netflix公司的一款组件。那么Hystix的作用是什么呢?具体要保护什么呢?Hystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。Netflix 提供了Feign,并在 2016.7 月的最后一个版本8.18.0之后,将其捐赠给 spring cloud 社区,并更名为OpenFeign。OpenFeign 的第一个版本就是9.0.0。

2023-05-18 19:45:12 836

原创 00.SpringCloud服务调用方式

官网地址:http://projects.spring.io/spring-cloud/中文地址:https://www.springcloud.cc/Spring最擅长的就是集成,把世界上最好的框架拿过来,集成到自己的项目中。SpringCloud也是一样,它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理,服务发现,智能路由,负载均衡,熔断器,控制总线,集群状态等等功能。Eureka:服务治理组件,包含服务注册中心,服务注册与发现机制的实现。(服务治理,服务注册/发现)

2023-05-17 18:06:54 808

原创 Ribbon负载均衡

Hystrix,英文意思是豪猪,全身是刺,看起来就不好惹,是一种保护机制。它是容错组件,Hystrix也是Netflix公司的一款组件。那么Hystix的作用是什么呢?具体要保护什么呢?Hystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。Netflix 提供了Feign,并在 2016.7 月的最后一个版本8.18.0之后,将其捐赠给 spring cloud 社区,并更名为OpenFeign。OpenFeign 的第一个版本就是9.0.0。

2023-05-15 20:11:25 880

原创 《代码实例》Spring Boot 使用AOP切面编程记录用户操作日志连接数据库

*前言:**想做一个用户日志记录,几经寻找,发现都比较复杂,有的代码不详细,根本看不懂,我觉得这个方法比较简单,所以分享给大家在Spring框架中使用AOP配合自定义注解监控用户操作。首先搭建一个基本的Spring Boot Web环境开启,

2023-05-10 20:25:35 833

原创 1.什么是HTML

HTML的英文全称是 Hyper Text Markup Language,为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。

2023-05-09 19:58:30 464

原创 25.自定义注解

Annontation是Java1.5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观、更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。

2023-05-08 20:24:07 734

原创 24.Stream流

Stream流操作是Java 8提供一个重要新特性,它允许开发人员以声明性方式处理集合,其核心类库主要改进了对集合类的 API和新增Stream操作。Stream类中每一个方法都对应集合上的一种操作。将真正的函数式编程引入到Java中,能 让代码更加简洁,极大地简化了集合的处理操作,提高了开发的效率和生产力。同时stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。

2023-05-06 17:45:11 487

原创 23.Lambda表达式

Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。其次:可以在接口中使用@FunctionalInterface注解,使编译器按照函数是接口进行要求,如果在接口中存在多个抽象方法,编译器就会提示。答案是肯定的,这样写确实可以实现,这种形式,是Lambda表达式中更简洁的写法,方法的引用。Java 引入 Lambda,改善了集合操作。

2023-05-05 20:26:02 360

原创 22.Java多线程

从程序可以看出,现在的两个线程对象是交错运行的,哪个线程对象抢到了 CPU 资源,哪个线程就可以运行,所以程序每次的运行结果肯定是不一样的,在线程启动虽然调用的是 start() 方法,但实际上调用的却是 run() 方法定义的主体。在 Java 程序中,只要前台有一个线程在运行,则整个 Java 进程都不会消失,所以此时可以设置一个后台线程,这样即使 Java 线程结束了,此后台线程依然会继续执行,要想实现这样的操作,直接使用 setDaemon() 方法即可。否则,就使用效率更高的类。

2023-05-04 20:45:07 531

原创 Element ui select同时获取value和label的值的方法

【代码】Element ui select同时获取value和label的值的方法。

2023-04-28 12:00:35 93

原创 21.Java反射机制

Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。用一句话总结就是反射可以实现在运行时可以知道任意一个类的属性和方法。个人理解:Java在编译期间,使用new关键字去创建一个对象的实例,属于静态编译,反射机制则属于动态编译,反射只有到运行时他才会去获得该对象的实例。反射重点在一个“反”字。我们常用的方式是先知道类,然后知道类的属性和方法,而反射是在运行时才知道操作的类信息。

2023-04-27 19:58:41 51

原创 20.Java序列化

这个序列化ID起着关键的作用,它决定着是否能够成功反序列化!java的序列化机制是通过判断运行时类的serialVersionUID来验证版本一致性的,在进行反序列化时,JVM会把传进来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。三、对象序列化实现步骤。四、序列化ID的作用。五、序列化的其他问题。

2023-04-26 20:06:47 412

原创 解决 vue axios提交时间少8小时

用moment的格式化替换默认的格式化即可。在main.js里面添加如下代码。先导入moment包。

2023-04-26 17:43:12 430

开源靶场zsbdzsbd

开源靶场zsbdzsbd

2023-04-19

VSCodeUserSetup-x64-1.64.1.exe

VSCodeUserSetup-x64-1.64.1免费提供直接可以安装

2023-02-23

空空如也

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

TA关注的人

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