- 博客(147)
- 收藏
- 关注
原创 Linux下MySQL 连接出现 Authentication plugin ‘caching_sha2_password‘ cannot be loaded
【代码】Linux下MySQL 连接出现 Authentication plugin 'caching_sha2_password' cannot be loaded。
2024-07-29 01:39:44
349
原创 layui 表格(table)合计 取整数
提示:谨慎修改源码layui table.js 路径 ./static/js/layui/lay/modules/table.jsi||e:e// 原代码示例:这样加了totalRowType:'int’的就会取整数,而不加的合计取两位小数两种可以同时存在。
2023-11-12 22:16:19
2029
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
772
原创 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
406
原创 搞定HashMap
HashMap隶属于Java中集合这一块,我们知道集合这块有list,set和map,这里的HashMap就是Map的实现类,那么在Map这个大家族中还有哪些重要角色呢?
2023-07-05 12:41:55
165
原创 多线程、锁、并发关键字
如上图所示,所有线程的共享变量都存储在主内存中,每一个线程都有一个独有的工作内存,每个线程不直接操作在主内存中的变量,而是将主内存上变量的副本放进自己的工作内存中,只操作工作内存中的数据。虽然每次获取num值的时候,也就是执行上述第一步的时候,都拿到的是主内存的最新变量值,但是在进行第二步num+1的时候,可能其他线程在此期间已经对num做了修改,这时候就会触发MESI协议的失效动作,将该线程内部的值作废。但是在多线程的场景下就不一定了。如果内存地址里面的值和A的值是一样的,那么就将内存里面的值更新成B。
2023-07-05 12:35:49
167
原创 多线程00
答:ThreadLocal 为每一个线程维护变量的副本,把共享数据的可见范围限制在同一个线程之内,因此 ThreadLocal 是线程安全的,每个线程都有属于自己的变量。
2023-07-01 09:21:27
163
原创 AOP日志
AOP(面向切面编程)是一种编程思想,可以通过在代码中定义切面(Aspect),来实现对特定方法的拦截和增强。4.定义增强逻辑:在切面类中,定义增强逻辑,即在切入点前后执行的操作。1.导入相关依赖:首先,需要导入AOP框架的相关依赖,例如Spring AOP或AspectJ。2.定义切面:创建一个切面类,用于定义切入点和增强逻辑。5.配置AOP:通过注解或XML配置,将切面类与目标类进行关联,以实现AOP拦截和增强。3.定义切入点:在切面类中,使用注解或XML配置来定义切入点,即目标方法的执行位置。
2023-06-28 10:48:10
347
原创 WebSocket
WebSocket 事HTML5开始提供的一种在单个TCP连接上进行的双工通讯的协议,可以在html页面直接使用。WebSocket使用客户端何服务器之间的数据交换变得更加简单,允许服务端主动向客户端推动数据。在WebSocketAPI中,浏览器和服务器只需完成一次握手,两者之间直接可以建立持久性的连接,并进行双向数据传输。
2023-06-27 17:22:52
759
原创 JVM优化00
MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。官网地址:https://www.eclipse.org/mat/
2023-06-21 11:10:37
1179
原创 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
389
原创 BIO-NIO-AIO案例
1、缓冲区(Buffer):实际上是一个容器,是一个特殊的数组,缓冲区对象内置了一些机 制,能够跟踪和记录缓冲区的状态变化情况。Channel 提供从文件、网络读取数据的渠道, 但是读取或写入的数据都必须经由 Buffer,如下图所示在 NIO 中,Buffer 是一个顶层父类,它是一个抽象类,常用的 Buffer 子类有:ByteBuffer,存储字节数据到缓冲区ShortBuffer,存储字符串数据到缓冲区CharBuffer,存储字符数据到缓冲区IntBuffer,存储整数数据到缓冲区。
2023-06-19 11:56:55
493
原创 GC垃圾回收
程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存资源,最终将导致内存溢出,所以对内存资源的管理是非常重要了。
2023-06-17 22:28:15
1070
原创 BTree和B+Tree详解
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。
2023-06-14 10:21:48
8601
原创 数据库索引及优化
1、对于单表查询,一定要根据 where 后面的字段建立索引,遇到有 、!= 这样的关系运算符,会使已经建完的索引失效2、对于双表查询,左外连接只会因为右表的索引而被优化,右外连接只会因为左表的索引而被优化,内连接则因为两个表的索引都可以被优化3、对于三表查询,则根据是左连接对右边的连接建立索引,根据右连接对左边的连接建立索引。
2023-06-12 18:15:54
1584
原创 JVM图解
概览JVM运行时数据区主要包括以下几个部分:程序计数器、虚拟机栈、本地方法栈、方法区、堆;其中 栈是运行时的单位,而堆是存储的单位!
2023-06-12 09:19:57
1716
原创 08SpringCloud 幂等性
举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣了钱,流水记录也变成了两条,再或者新增用户表单注册时,用户反复提交表单.当然,『先删除 token』也有缺点,如果先删除 token 成功,而随后执行业务逻辑失败,那么需要再返回信息中告知请求方,在重新获得 token,而不能/无法重复利用之前的 token。其实,这里的 token 起到的就是全局唯一 ID 的作用。
2023-06-08 20:10:19
428
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
938
原创 05SpringCloud 分布式事务seata
在学习分布式事务之前,务必要知道,分布式事务不可能100%完美解决问题!只能尽量提高成功概率!让这个成功概率尽量接近99.999%,为了达到这个目的,甚至加入人工。
2023-06-03 09:33:03
288
原创 04SpringCloud 消息中间件
MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法。是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信,在项目中,可将一些无需即时返回且耗时的操作提取出来,进行异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。
2023-05-31 19:41:32
1074
原创 03SpringCloud Docker
(1)从VM与Docker框架中,直观上VM多了一层Guest OS,同时Hypervisor会对硬件资源进行虚拟化,docker直接使用硬件资源,所以资源利用率相对docker低。(2)openstack能够以10台/min的速度创建虚拟机,在docker面前就弱爆了,因为docker是利用宿主机的系统内核,所以可以做到在几秒钟之内创建大量容器,它们的启动速度是在数量级上的差距。Docker的每个隔离环境是进程级的,每个守护进程共用操作系统内核,在隔离环境中打包运行服务必要的依赖。
2023-05-30 20:27:05
601
原创 02SpringCloud Nacos注册中心和配置中心与Sentinel服务熔断和流控
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。源码地址:https://github.com/alibaba/Sentinel官方文档:https://github.com/alibaba/Sentinel/wikiSpring Cloud Alibaba Sentinel 同时兼具了熔断器和流控的功能。
2023-05-24 20:02:28
1780
原创 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
925
原创 00.SpringCloud服务调用方式
官网地址:http://projects.spring.io/spring-cloud/中文地址:https://www.springcloud.cc/Spring最擅长的就是集成,把世界上最好的框架拿过来,集成到自己的项目中。SpringCloud也是一样,它将现在非常流行的一些技术整合到一起,实现了诸如:配置管理,服务发现,智能路由,负载均衡,熔断器,控制总线,集群状态等等功能。Eureka:服务治理组件,包含服务注册中心,服务注册与发现机制的实现。(服务治理,服务注册/发现)
2023-05-17 18:06:54
934
原创 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
1096
原创 《代码实例》Spring Boot 使用AOP切面编程记录用户操作日志连接数据库
*前言:**想做一个用户日志记录,几经寻找,发现都比较复杂,有的代码不详细,根本看不懂,我觉得这个方法比较简单,所以分享给大家在Spring框架中使用AOP配合自定义注解监控用户操作。首先搭建一个基本的Spring Boot Web环境开启,
2023-05-10 20:25:35
953
原创 1.什么是HTML
HTML的英文全称是 Hyper Text Markup Language,为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。
2023-05-09 19:58:30
515
原创 25.自定义注解
Annontation是Java1.5开始引入的新特征,中文名称叫注解。它提供了一种安全的类似注释的机制,用来将信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观、更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。Annontation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。
2023-05-08 20:24:07
807
原创 24.Stream流
Stream流操作是Java 8提供一个重要新特性,它允许开发人员以声明性方式处理集合,其核心类库主要改进了对集合类的 API和新增Stream操作。Stream类中每一个方法都对应集合上的一种操作。将真正的函数式编程引入到Java中,能 让代码更加简洁,极大地简化了集合的处理操作,提高了开发的效率和生产力。同时stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。
2023-05-06 17:45:11
528
原创 23.Lambda表达式
Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。其次:可以在接口中使用@FunctionalInterface注解,使编译器按照函数是接口进行要求,如果在接口中存在多个抽象方法,编译器就会提示。答案是肯定的,这样写确实可以实现,这种形式,是Lambda表达式中更简洁的写法,方法的引用。Java 引入 Lambda,改善了集合操作。
2023-05-05 20:26:02
408
原创 22.Java多线程
从程序可以看出,现在的两个线程对象是交错运行的,哪个线程对象抢到了 CPU 资源,哪个线程就可以运行,所以程序每次的运行结果肯定是不一样的,在线程启动虽然调用的是 start() 方法,但实际上调用的却是 run() 方法定义的主体。在 Java 程序中,只要前台有一个线程在运行,则整个 Java 进程都不会消失,所以此时可以设置一个后台线程,这样即使 Java 线程结束了,此后台线程依然会继续执行,要想实现这样的操作,直接使用 setDaemon() 方法即可。否则,就使用效率更高的类。
2023-05-04 20:45:07
599
原创 Element ui select同时获取value和label的值的方法
【代码】Element ui select同时获取value和label的值的方法。
2023-04-28 12:00:35
166
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人