自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(142)
  • 资源 (15)
  • 收藏
  • 关注

原创 Java虚拟机——JVM

概述JVM即所谓的Java虚拟机,是一个软件,用来执行一系列虚拟计算机指令,是二进制字节码的运行环境,负责装载字节码到其内部,解释(编译)为对应平台上的机器指令执行。其实,说JVM是Java的虚拟机已经不太准确,因为现在的JVM已经是一个跨语言的平台了,不仅是Java、Kotlin、Clojure,Groovy、Scala甚至JavaScript也可以通过特定的编译器进行编译生成字节码文件(字节码文件是编译后的二进制产物,不论是用什么语言进行编写的,只要能编译成对应的字节码文件,就能在JVM上运行)。

2021-07-15 07:20:49 349 1

原创 is not valid JSON at JSON.parse

校验和压缩后发现前端还是转换失败。在返回结果的时候可以看见一个小红点。数据,转换成字符串返回给前端,前端使用。,我们需要手动处理,通过。在后台读取一个文件里的。指定字符编码,并且利用。

2024-03-05 17:54:59 344

原创 Spring Boot 部署在Windows

下项目保存数据到数据库中,中文乱码问题。排除请求乱码,接收乱码。插件(多模块项目只需在服务模块添加插件)启动时指定配置文件,多个逗号隔开。)有关,需要启动时指定。启动,后台运行无前台。

2024-03-05 13:56:22 511

原创 IDEA启动Tomact-WEB项目加载不到

IDEA启动Tomact-WEB项目加载不到

2024-01-16 11:57:02 589

原创 SpringBoot下Request处理

1、实现一个过滤器,对于所有请求路径。自定义拦截器,开始和结束时记录日志。,打印日志或参数校验。请求流不能重复读取。2、对于文件请求类型。

2023-11-11 15:29:02 348

原创 Spring-AOP不生效之内部方法调用

当使用时,从IOC容器中获取的Bean对象都是代理对象,而不是Bean对象本身,由于this关键字应用的并不是该Bean对象的对象,而是其本身,因此此时Spring AOP是不能拦截到这些被嵌套调用的方法的。// 指示是否创建基于子类(CGLIB)的代理,而不是创建基于标准Java接口的代理。如果目标对象实现了接口,在默认情况下。拦截器的实现原理就是动态代理,实现。1、修改类,把内部自调用改掉。的代理实现有两种:一是基于。:接口实现类中有两个,,如果现在外部对象调用。方法的时候,会发现只有。

2023-11-10 10:38:55 771

原创 修改jar目录jarjar的使用

java -jar jarjar的名称 process rule.txt 要改变的jar包名称 最终的jar名称。org.apache.poi 的所有的类 改名为 org.daihao.poi下。有时候项目jar包存在多个版本,jar包冲突,又想要同时引用,这个时候可以使用。rule 要改变的包名称 改变的名称。包放在一起,并新建一个。1、jarjar下载。

2023-06-08 14:45:31 465

原创 修改替换jar包中某个类

有时候因为某些原有想要改jar包中某个类,某个属性。2、创建一个同包名的想要修改的类,并修改想要修改的。5、回到解压文件夹开始目录将文件重新打成jar包。包解压开,找到目录将编译后的文件直接替换回去。1、在IDEA中创建一个maven项目。有限制4030则会报错。项目,在编译位置找到编译后的。

2023-06-08 14:29:35 674

原创 登录那些事

HTTP是无状态的协议(对于事务处理没有记忆能力,每次客户端和服务端会话完成时,服务端不会保存任何会话信息):每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次的发送者是不是同一个人。所以服务器与浏览器为了进行会话跟踪(知道是谁在访问我),就必须主动的去维护一个状态,这个状态用于告知服务端前后两个请求是否来自同一浏览器。而这个状态需要通过cookie或者session去实现。

2023-03-27 15:44:12 460 1

原创 SQL server 使用优化脚本

SQL server 使用优化脚本

2023-03-07 18:28:30 622

原创 七、SpringBoot_自动装配

SpringBoot定义了一套接口规范,规范规定:SpringBoot在启动时会扫描外部引用jar包中的META-INF/spring.factories文件,将文件中配置的类型信息加载到Spring容器,并执行类中定义的各种操作。对于外部jar来说,只需要按照SpringBoot定义的标准,就能将自己的功能装置进SpringBoot。

2023-03-02 15:25:05 257

原创 JAVA中加密与解密

Base64 编码会将字符串编码得到一个含有 A-Za-z0-9+/ 的字符串。标准的 Base64 并不适合直接放在URL里传输,因为URL编码器会把标准 Base64 中的“/”和“+”字符变为形如 “%XX” 的形式,而这些 “%” 号在存入数据库时还需要再进行转换,因为 ANSI SQL 中已将“%”号用作通配符。

2023-03-01 16:40:47 1549

原创 六、SpringBoot项目搭建

自定义校验器try {} } }try {} } }try {} } }try {} } }try {} } }try {} } }try {} } }try {} } }自定义注解@Target({TelephoneNumberValidator . class }) // 指定校验器 public @interface TelephoneNumber {Class

2023-02-28 00:16:52 139

原创 Java 主流日志工具库

使用 slf4j + Logback 可谓是目前最理想的日志解决方案了。

2023-02-26 18:26:40 1135

原创 五、SpringBoot_概述

Spring是Java企业版(的轻量级代替品。无需开发重量级的Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象实现了EJB的功能。

2023-02-26 17:49:39 892

原创 Fastjson之SerializerFeature属性读取JSON写入文件

改变SerializerFeature属性读取JSON写入文件。SerializerFeature属性。

2023-02-26 00:16:12 586

原创 Fastjson的$ref

转化为`json`字符串后出现了`$ref`字样的东西,这是因为在传输的数据中出现相同的对象时,`fastjson`默认开启引用检测将相同的对象写成引用的形式 默认开启引用检测将相同的对象写成引用的形式。

2023-01-03 16:08:00 641

原创 四、 Spring-MVC

MVC,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计规范。本质上也是一种解耦。Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

2022-12-30 09:59:07 434

原创 MySQL数据库优化

MySQL数据库优化一般有这几个方面* 减少数据访问:设置合理的字段类型,启用压缩,通过索引访问等减少磁盘`IO`* 返回更少的数据:只返回所需字段和数据分页处理,减少磁盘`IO`和网络`IO`* 减少交互次数:批量`DML`操作,函数存储等减少数据连接次数* 减少服务器`CPU`开销:尽量减少数据库排序操作已经全表查询,减少`CPU`内存占用* 利用更多资源:使用表分区,可以增加并行操作,更大限度利用`CPU`资源

2022-11-03 10:09:57 204

原创 Java函数式接口

有且只有一个抽象方法的接口被称为函数式接口。

2022-11-01 15:17:56 290

原创 Java初始化List及异常java.lang.UnsupportedOperationException

后对其进行添加,修改等操作时会抛出异常,这是因为生成的。是否支持修改操作,可以转为可修改类型再操作。类型默认不支持请求的操作。

2022-11-01 10:08:39 210

原创 Java中的BigDecimal

在除法(divide)运算过程中,如果商是一个无限小数,而操作的结果预期是一个精确的数字,那么将会抛出ArithmeticException异常。注意,此舍入模式始终不会减少计算值的大小。注意,此舍入模式始终不会增加计算值的大小。:向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。:向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。如果舍弃部分左边的数字为奇数,则舍入行为与。:向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为上舍入的舍入模式。

2022-10-28 17:34:06 437

原创 Hutool导出excel带前台Base64图片

Hutool导出excel带前台Base64图片

2022-09-24 10:08:58 1106

原创 使用hutool工具类BigExcelWriter导出数据

输出没有强制覆盖,为的是防止路径写错导致误操作。导出数据,如果导出的文件已存在的话会报错。先删除文件,后写出。

2022-08-18 10:36:05 2922

原创 开发工具记录

IntelliJ IDEANotepad3gloggCodeGlance2 代码缩略图Maven helper pom依赖冲突检查Rainbow brackets 括号颜色分层Lombok Lombok支持GitToolBox Git工具箱JRebel and XRebel 热部署插件JRebel mybatisPlus extension 热部署插件(Mapper.xml)MybatisLogMyBatisX mybatis 插件Translation 翻译TampermonkeyAdGuard 广

2022-08-05 17:31:40 1518

原创 MySQL的日志

redo log是InnoDB引擎特有的日志WAL技术:当有一条记录需要更新的时候,InnoDB引擎就会先把记录写到redo log里面,并更新内存,这个时候更新就算完成了。同时,InnoDB引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做。InnoDB的redo log是固定大小的,比如可以配置为一组4个文件,每个文件的大小是1GB,那么总共就可以记录4GB的操作。从头开始写,写到末尾就又回到开头循环写,如下面这个图所示。write pos。...

2022-08-05 17:02:06 352

原创 MySQL函数count

不同的 引擎中,有不同的实现方式。为什么 不跟 一样,也把数字存起来呢?因为即使是在同一个时刻的多个查询,由于多版本并发控制()的原因,表“应该返回多少行”也是不确定的。事务默认的隔离级别是可重复读,在代码上就是通过多版本并发控制,也就是 来实现的。每一行记录都要判断自己是否对这个会话可见,因此对于请求来说,只好把数据一行一行地读出依次判断,可见的行才能够用于计算“基于这个查询”的表的总行数。InnoDB在执行 count(*) 操作的优化是索引组织表,主键索引树的叶子节点是数据,而普通索引树的叶子节点

2022-06-30 16:43:01 119

原创 MySQL刷脏页

在处理更新语句的时候,只做了写日志这一个磁盘操作。这个日志叫作 (重做日志),在更新内存写完 后,就返回给客户端,本次更新成功。内存里的数据写入磁盘的过程,术语就是 。当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”。内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为“干净页” 。1、的 写满了。这时候系统会停止所有更新操作,把 往前推进,留出空间可以继续写。2、系统内存不足。当需要新的内存页,而内存不够用的时候,就要淘汰一些数据页,空出内存给别的数据页使用。如果淘汰的是“脏

2022-06-30 14:57:46 828

原创 MySQL锁

全局锁就是对整个数据库实例加锁。提供了一个加全局读锁的方法,命令是。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。全局锁的典型使用场景是,做全库逻辑备份。也就是把整库每个表都 出来存成文本。在备份过程中整个库完全处于只读状态。官方自带的逻辑备份工具是 。当 使用参数的时候,导数据之前就会启动一个事务,来确保拿到一致性视图。而由于 的支持,这个过程中数据是可以正常更新的。你一定在

2022-06-29 11:09:50 87

原创 MySQl索引

哈希表是一种以键 - 值()存储数据的结构,我们只要输入待查找的值即 ,就可以找到其对应的值即 。哈希的思路很简单,把值放在数组里,用一个哈希函数把 换算成一个确定的位置,然后把 放在数组的这个位置。哈希表这种结构适用于只有等值查询的场景 ,比如 及其他一些 引擎。有序数组在等值查询和范围查询场景中的性能就都非常优秀,但是,在需要更新数据的时候就麻烦了,你往中间插入一个记录就必须得挪动后面所有的记录,成本太高。所以, 有序数组索引只适用于静态存储引擎 ,比如你要保存的是 2017 年某个城市的所有人口信息,

2022-06-28 18:19:46 222

原创 一条SQL更新语句被执行

更新流程涉及两个重要的日志模块:日志和 日志 是 引擎特有的日志 技术 :当有一条记录需要更新的时候, 引擎就会先把记录写到 里面,并更新内存,这个时候更新就算完成了。同时, 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做。 的 是固定大小的,比如可以配置为一组 个文件,每个文件的大小是 ,那么总共就可以记录 的操作。从头开始写,写到末尾就又回到开头循环写,如下面这个图所示。 是当前记录的位置,一边写一边后移,写到第 号文件末尾后就回到 号文件开头。

2022-06-14 10:46:34 153

原创 SQL Server碎片整理

(越小越好)索引的逻辑碎片,或 分配单元中堆的区碎片。此值按百分比计算,并将考虑多个文件。0 表示 和 分配单元。如果是堆表且模式为 时,为 。如果碎片小于,碎片不太可能会成为问题,如果索引碎片在,碎片可能成为问题,但是可以通过索引重组来消除索引解决,大规模的碎片(当碎片大于),可能要求索引重建。所有页中使用的可用数据存储空间的平均百分比。对于索引,平均百分比应用于 分配单元中 的当前级别。对于堆,表示 分配单元中所有数据页的平均百分比。对于 或 分配单元,表示该分配单元中所有页的平均百

2022-06-02 14:13:22 1647 1

原创 MySQL碎片整理

MySQL碎片MySQL 碎片就是 MySQL 数据文件中一些不连续的空白空间,这些空间无法再被全部利用,久而久之越来多,越来越零碎,从而造成物理存储和逻辑存储的位置顺序不一致,这就是碎片。碎片的产生delete 操作在 MySQL 中删除数据,在存储中就会产生空白的空间,当有新数据插入时,MySQL 会试着在这些空白空间中保存新数据,但是呢总是用不满这些空白空间。所以日积月累,亦或是一下有大量的 delete 操作,一下就会有大量的空白空间,慢慢的会大到比表的数据使用的空间还大。updat

2022-05-26 17:51:11 1596

原创 学习ThreadLocal

ThreadLocal的数据结构ThreadLocal内部维护的是一个类似Map的ThreadLocalMap数据结构,key为当前对象的Thread对象,值为泛型的Object。使用ThreadLocal比较方便的就是当thread不变的情况下,可以很方便的设置或者获取对象。static class ThreadLocalMap { /** * The entries in this hash map extend WeakReference, using

2022-05-22 17:54:48 209

原创 MyBatis-Plus实现动态表名

1、添加MyBatis-Plus依赖;2、添加MyBatis-Plus配置,利用拦截器获取到表名给替换;3、创建请求参数传递辅助类;4、在程序中使用,注意如果实际表名与实体类与不同,可先在实体类类注明表名@TableName("TestUser")

2022-05-20 15:35:12 3909 1

原创 FastDFS防盗链

FastDFS内置防盗链采用Token的方式。Token是带时效的,也就是说在设定的时间范围内,比如1分钟,token是有效的。token包含了文件id、时间戳ts和密钥。FastDFS在URL中带上当前时间戳和带时效的token,参数名分别为ts和token。Token的生成和校验都是在服务端,因此不会存在安全问题。http://192.168.1.250:80/group1/M00/00/00/wKgB9WJzhVyANDPsAABXnhfXmqQ24.xlsx?token=08a6f962effff

2022-05-09 16:01:47 980 2

原创 SpringBoot集成FastDFS

fastdfs-client Java客户端并没有存在maven仓库,需要手动下载打包安装进本地仓库。clone项目git clone https://github.com/happyfish100/fastdfs-client-java.git如果环境变量中有maven ,可直接执行命令:mvn clean install如果没有,可以导入项目到IDEA中,进行打包,先clean, 再install(部署到本地仓库)然后就可以在项目pom.xml中添加依赖<dependency&g

2022-05-09 15:53:35 363

原创 Windows下安装FastDFS

FastDFS是没有Windows版本的,所以采取了Docker去安装,不同Windows系统,Docker安装不尽相同。Windows11下安装Docker克隆项目git clone https://[email protected]/qbanxiaoli/fastdfs.git 修改docker-compose.yml,指定IP(多个IP集群用逗号分割)version: '3'services: fastdfs: build: . image: qbanxiao

2022-05-09 15:39:24 7329 4

原创 三、Spring-AOP

AOPAOP:Aspect Oriented Programming 面向切面编程AOP最早是AOP联盟组织提出的,指定的一套规范。AOP通过提供另外一种思考程序结构的途经来弥补面向对象编程(OOP)的不足。在OOP中模块化的关键单元是类,而在AOP中模块化的单元则是切面。切面能对关注点进行模块化,例如横切多个类型和对象的事务管理。AOP框架是Spring的一个重要组成部分。但是Spring IOC容器并不依赖于AOP,这意味着你有权利选择是否使用AOP,AOP做为Spring IOC容器的一个补

2022-04-29 17:25:27 918

原创 消息队列——MQ(Message Queue)

什么是消息队列通常说的消息队列,简称MQ(Message Queue),指的就是消息中间件。简单理解为一个使用队列来通信的组件,本质上就是个转发器,包含发消息,存消息,消费消息的过程。为什么要使用消息队列1、解耦订单系统下单后,消息写入消息队列,库存系统订阅下单系统,获取下单信息,进行库存操作2、异步注册信息保存后,同时异步发短信和邮件3、削峰流量暴涨,用户请求写入消息队列,系统读取消息队列慢慢处理4、消息通讯消息队列内置了高效的通信机制,可用于消息通讯。如实现点对点消息队列、聊天室等。

2022-03-27 21:10:18 6144

Sql Server查询优化语句.md

1、查询索引大小或使用率;2、查询运行慢的语句;3、查询触发器;4、重新生成索引;5、DBCC;6、查询堵塞

2024-03-18

Sql server 数据库优化脚本

数据库优化脚本,语句均为执行全库扫描与优化,故耗时会很久,执行期间将会拖慢系统性能,要求必须放在系统空闲时执行

2023-03-07

windows版MySQL的卸载、安装、配置、问题.docx

windows版MySQL的卸载、安装、配置、问题

2021-07-31

Mysql.xmind

mysql学习总结

2021-07-18

HttpClientResult.java

http请求工具类-HttpClientUtils附属类

2020-12-19

http请求工具类-HttpClientUtils

http请求工具类-HttpClientUtils 还需要HttpClientResult类

2020-12-19

mallSql.zip

商城数据库数据。

2020-10-09

Docker.mmap

1、Docker简介、 2、Docker安装、 3、Docker常用命令、 4、Docker镜像、 5、Docker容器数据卷、 6、DockerFile解析、 7、Docker常用安装、 8、本地镜像发布到阿里云、

2020-06-18

Redis.mmap

1、简介:是什么、应用场景、同类产品、安装 2、 基础:数据结构、分布式锁、持久化、事务、同步机制、集群、集群高可用 3、缓存问题:缓存雪崩、缓存穿透、缓存击穿、缓存预热、缓存更新、缓存降级、 4、 拓展:布隆过滤器、keys, scan、redis快原因、redis单机瓶颈、集群保证高可用、过期策略、淘汰策略、 5、 电商项目实战使用:为什么是删除缓存,而不是更新缓存?、分布式锁、详情页、购物车、单点登录、

2020-06-18

这就是标题—— JUC.pdf

JUC是什么 线程 进程 / 线程 线程状态 wait / sleep 并发 / 并行 Lock 使用Lock锁 可重入锁 公平锁 / 非公平锁 Synchronized / Lock 线程通讯 wait()、notify()和notifyAll() 虚假唤醒 Condition 定制化通信 多线程锁 并发下的集合类 List Set Map Callable接口 线程创建的方式 callable / runnable FutureTask JUC常用辅助类 CountDownLatch (减少计数器) CyclicBarrier(加法计数器) Semaphore(信号量,流量控制) ReentrantReadWriteLock (读写锁) BlockingQueue(阻塞队列) 线程池 池化技术 线程池的优势 线程池的特点 线程池三大方法 线程池七大参数 线程池四种拒绝策略 ForkJoin 异步回调 Volatile 指令重排 JMM

2020-05-19

商城sku在es中存储模型

商城sku在es中存储模型.

2020-05-13

Docker最详细讲解学习安装开发工具.docx

Docker是一个客户端-服务器(C/S)架构程序。Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker提供了一个命令行工具Docker以及一整套RESTful API。你可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程...

2020-05-13

Spring知识导图笔记.xmind

1、为什么要使用Spring? 2、Bean 3、Spring事务 4、基本框架 5、面向切面编程 6、为Spring添加REST功能 7、spring计划任务 8、spel 9、面试

2020-05-13

kafka知识导图笔记.xmind

1、介绍 2、Kafka独特设计在什么地方? 3、kafka架构 4、Kafka如何搭建及创建topic、发送消息、消费消息? 5、环境搭建 6、测试 7、kafka开发环境搭建 8、学习总结来源

2020-05-13

JVM和性能优化.xmind

1、Java内存区域 2、垃圾回收器和内存分配策略 3、JVM的执行子系统 4、编写高效优雅Java程序 5、深入了解性能优化

2020-05-13

java多线程并发编程知识导图笔记.xmind

java多线程并发编程知识导图笔记.xmind

2020-05-13

Elasticsearch.xmind

Elasticsearch总结。Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。

2020-05-04

空空如也

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

TA关注的人

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