- 博客(246)
- 资源 (18)
- 收藏
- 关注
原创 jvisualvm 工具的使用
文章目录Visual GC 插件下载代码示例说明spaces 区域PermHeapGraphs 区域Compile Time(编译时间)Class Loader Time(类加载时间)GC TimeEden Space(Eden 区)Survivor 0 / Survivor 1(S0 和 S1 区)Old Gen(老年代)Metaspace(元空间)Visual GC 插件下载打开 jvisualvm 工具之后,点击工具选项,然后点击插件选中可用插件,可以发现,有很多的插件可安装这里安装的是
2024-03-11 14:07:33 2430 1
原创 GC 4 大垃圾收集算法
文章目录什么是 GC?(分代收集算法)GC 算法总体概述Minor GC 和 Full GC 的区别GC 四大算法引用计数法复制算法(Copying)原理动态演示解释动图劣势标记清除(Mark-Sweep)标记压缩(Mark-Compact)什么是 GC?(分代收集算法)GC(Garbage Collection)次数上频繁手机 Young 区次数上较少收集 Old 区基本不动元空间GC 算法总体概述JVM 在进行 GC 时,并非每次都对上面三个内存区域一起回收的,大部分时候回收的都是指
2021-03-27 19:15:00 914 1
原创 SpringBoot 整合 JWT 实现 Token 验证
文章目录前文JWT 请求流程验证流程:项目目录结构Maven 依赖application.properties实体类Dao 层UserDao.xmlService 层实现类JWT 封装类自定义 JWT 拦截器将拦截器注册到 SpringMVC控制器测试前文JWT —— 入门JWT 请求流程用户使用账号和密码发出 post 请求服务器使用私钥创建一个 jwt服务器返回这个 jwt 给浏览器浏览器将该 jwt 串在请求头中向服务器发送请求服务器验证该 jwt返回响应的资源给浏览器验证流
2021-02-13 16:08:13 942
原创 SpringBoot 整合 Shiro 实现登录拦截
文章目录Shiro 简介什么是 Shiro?Shiro 的基本功能Shiro 的架构Shiro 的认证流程SpringBoot 整合 Shiro添加 Maven 依赖HTML 页面自定义 UserRealm(用户认证)Shiro 配置类(登录拦截)Controller测试Shiro 简介什么是 Shiro?Apache Shiro 是一个 Java 的安全(权限)框架Shiro 可以非常容易的开发出足够好的应用,不仅可以用在 Java SE 环境,也可以用在 Java EE 环境Shiro 可以
2020-12-06 17:59:48 1104
原创 SpringBoot + Hutool 实现图片验证码登录
文章目录准备一个登录页面使用 Hutool 工具生成验证码LineCaptcha 线段干扰的验证码CircleCaptcha 圆圈干扰验证码ShearCaptcha 扭曲干扰验证码自定义验证码整合 SpringBoot结合验证码实现登录功能使用 SpringBoot —— Hutool 实现图片验证码登录其实非常简单,下面就来实现一个简单的登录 demo准备一个登录页面这个登录页面的实现非常简单,因为本人不是很会前端,所以登录页面做得还是非常简陋的编写该页面的时候需要用到 bootstrap 组件,
2020-11-29 19:42:51 11282 2
原创 Redis 缓存穿透和雪崩
文章目录Redis 缓存穿透和雪崩缓存穿透(查不到)概念解决方案缓存击穿(量太大,缓存过期)概述解决方案缓存雪崩概念解决方案Redis 缓存穿透和雪崩Redis 缓存的使用,极大地提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题,最要害的问题就是数据的一致性问题,从严格意义上来讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存另外的一些经典问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案缓存穿透(查不到)概念缓存穿透的概念很简单
2020-11-01 16:03:40 443
原创 SpringBoot 整合 AOP 实现日志处理原来这么简单?
文章目录AOP 简述SpringBoot 整合 AOPMaven 依赖创建日志拦截器完整代码测试相关文章阅读AOP 简述 相信用过 Spring 的朋友应该都使用过 AOP,AOP 是 (Aspect Oriented Programming 的缩写),意思为面向切面编程,通过 预编译方式 和运行期间动态代理 实现程序功能的统一维护的一种技。 AOP 是 OOP(面向对象) 的延续,是软件开发中的一个热点,也是 Spring 框架中的一个重要内容,是函数式编程的一种衍生范型。 利用
2020-10-19 17:15:18 1003
原创 谈谈对 JMM 的理解
文章目录什么是 JMM?JMM 关于同步的规定:可见性volatile 关键字原子性有序性volatileDemo 代码演示可见性+原子性代码什么是 JMM?JMM 即为 Java 内存模型(Java Memory Model)。是一种抽象的概念并不真实存在,它描述的是一组规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式JMM 关于同步的规定:...
2020-09-30 18:12:42 626
原创 Redis 持久化机制
文章目录RDB(Redis DataBase)触发机制如何恢复 RDB 文件?优点缺点AOF(Append Only File)APPEND ONLY MODE重写规则说明优点缺点扩展Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失,所以 Redis 提供了持久化功能RDB(Redis DataBase)什么是 RDB? 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的 Snapshot 快照,它恢复时是将快照
2020-09-22 09:44:36 873
原创 ElasticSearch —— 文档增删改查
文章目录说明启动 ElasticSearch启动 Kibana 工具文档增删改查增加文档获取文档修改文档PUT 方式POST 方式删除文档说明本文基于 Windows 10 环境启动 ElasticSearch运行 bin 目录下的 elasticsearch.bat 文件即可启动 Kibana 工具访问 http://localhost:5601/app/kibana#/dev_tools/console?_g=() 进入到 Kibana 的控制台页面文档增删改查增加文档在 Con
2020-09-18 10:30:25 1440
原创 Elasticsearch-head 插件安装及使用
文章目录下载安装跨域配置说明下载Elasticsearch-head 下载地址 https://github.com/mobz/elasticsearch-head安装首先将该项目 clone 下来,或者也可以直接下载压缩文件,都可以下载之后的文件目录然后就是安装 Elasticsearch-head 插件了,安装该插件需要使用到 Node,所以说需要自己安装 Node 环境,不会的朋友可以看下之前写的这篇文章 Node 下载安装及配置配置好 Node 环境后就可以使用 npm 命令了
2020-09-18 10:29:58 1432 1
原创 POI 操作 Excel
文章目录Apache POI基本功能POI 写引入依赖代码示例大文件写 HSSF代码示例(xls)大文件写 XSSF代码示例(xlsx)大文件写 SXSSFPOI 读HSSFXSSF读取不同类型的数据为什么会需要用到 POI 和 EasyExcel 呢?将用户信息导出为 Excel 表格(导出数据)将 Excel 表中的信息录入到网站数据库(习题上传)大大减少网站录入量开发中经常会涉及到 Excel 的处理,如导出 Excel,导入 Excel 到数据库中操作 Excel 目前比较流行的就是
2020-09-18 10:26:25 2461
原创 Java 注解和反射详解
文章目录注解什么是注解?内置注解元注解@Target@Retention@Documented@Inherited自定义注解反射静态语言 VS 动态语言动态语言静态语言Java 反射机制概述Java 反射机制提供的功能Java 反射优点和缺点反射相关的主要 API理解 Class 类并获取 Class 实例Class 类Class 类的常用方法获取 Class 类的实例所有类型的 Class 对象Java 内存分析类的加载与 ClassLoader 的理解注解什么是注解?Annotation 是从
2020-09-15 09:09:28 3667 3
原创 Redis 基本的事务操作与乐观锁实现
redis 事务本质:一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行!一次性、顺序性、排他性、执行一系列的命令redis 事务没有隔离级别的概念所有的命令在事务中,并没有直接被执行,只有发起执行命令的时候才会执行!Execredis 单条命令是保存原子性的,但是事务不保证原子性redis 事务:开启事务(multi)命令入队(…)执行事务(exec)正常执行事务!127.0.0.1:6379> multi // 开启事务OK
2020-09-11 13:25:07 1135 1
原创 Redis 数据结构详解
文章目录前文String 字符串类型详解APPENDSTRLEN自增自减字符串范围 range替换setex 和 setnxmset 和 mget对象getsetlist 字符串类型详解前文redis 下载安装redis 的简单使用String 字符串类型详解String 类似的使用场景:value 除了是字符串以外,还可以是数字计数器统计多单位的数量粉丝数对象缓存存储通过阅读前文可以知道,redis 的 String 可以使用 set key value 来设置值,通过 get
2020-09-05 10:08:59 1565
原创 JWT —— 入门
文章目录什么是 JWT?跨域认证的问题JWT 原理JWT 的数据结构HeaderPayloadSignatureBase64URLJWT 的使用方式JWT 的几个特点JWT 入门添加 JWT 依赖测试自定义 key签名验证添加 Payload 字段什么是 JWT? JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间作为JSON对象安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)
2020-08-22 09:36:25 2012
原创 深入理解 CAS
Unsafe是 CAS 的核心类,由于 Java 方法无法直接访问底层系统,需要通过本地(native)方法来访问,Unsafe 相当于一个后门,基于该类可以直接操作特定内存的数据。Unsafe 类存在于 sun.misc 包中,其内部方法操作可以像 C 的指针一样直接操作内存,因为 Java 中 CAS 操作的执行依赖于 Unsafe 类的方法注意 Unsafe 类中的所有方法都是 nat...
2020-08-13 10:52:06 2833 2
原创 Java 锁的理解
文章目录公平锁与非公平锁非公平锁公平锁关于公平锁与非公平锁的区别可重入锁(也叫作递归锁)举例自旋锁自旋锁的好处举例独占锁(写锁)/共享锁(读锁)/互斥锁举例(未使用读写锁)举例(使用读写锁)公平锁与非公平锁 用过并发包的朋友对这个应该不会陌生,ReentrantLock 是 Java 的 JUC(java.util.concurrent)包中提供的一种可重入锁,是一种递归无阻塞的同步机制。ReentrantLock 等同于synchronized关键字,但是 ReentrantLock 提供了比
2020-08-08 10:52:33 2300
原创 深入理解 Hashtable
文章目录什么是 Hashtable ?Hashtable 的继承结构Hashtable 几个重要的成员变量Hashtable 的构造函数Hashtable(int initialCapacity, float loadFactor)Hashtable(int initialCapacity)Hashtable()Hashtable(Map<? extends K, ? extends V> t)Hashtable 的主要方法put(K key, V value)addEntry(int hash
2020-08-03 11:01:54 2839
原创 Pandas —— 数据结构
文章目录Series仅有数据列表即可产生最简单的 Series获取索引获取数据创建一个具有标签索引的 Series获取索引名称使用 Python 字典创建 Series根据标签索引查询数据DataFrame根据多个字典序列创建 DataFrame从 DataFrame 中查询出 Series查询一列,结果是一个 pd.Series查询多列,结果是一个 pd.DataFrame查询一行,结果是一个 pd.Series查询多行,结果是一个 DataFrameSeriesSeries 是一种类似于一维数组的对
2020-07-26 09:44:04 3381
原创 Pandas —— 数据读取
文章目录Pandas 数据读取纯文本文件读取csv 文件读取xlsx 格式文件读取MySQL 数据表读取Pandas 数据读取Pandas 需要先读取表格类型的数据,然后才能进行分析数据类型说明Pandas 读取方法csv、tsv、txt用逗号分隔,tab 分割的纯文本文件pd.read_csvexcel微软 xls 或者 xlsx 文件pd.read_excelMySQL关系型数据库表pd.read_sql纯文本文件读取csv 文件读取csv
2020-07-18 11:19:43 8782
原创 一文搞懂 == 与 equals
在讲 == 与 equals 之前,不妨先做一道题,看下下面这段代码的输出结果是什么?/** * @author Woo_home * @create by 2020/3/18 */class Student { private String name; public Student(String name) { this.name = name; ...
2020-07-08 10:42:51 3527
原创 MySQL 索引分析
文章目录MyISAM 和 InnoDB 的区别索引与数据处理什么是索引?检索原理MySQL 索引结构hash二叉树中序遍历平衡二叉树(AVL)二叉树的结构图结论B 树B 树的结构图底层原理缺点什么是磁盘块 / 页?磁盘块 / 页之间的关系B 树检索原理结论B+ 树B+ 树结构图检索原理结论从 B 树到 B+ 树B+ 树相对于 B 树有什么不同?MyISAM 和 InnoDB 的区别现在最常用的...
2020-07-04 09:57:56 4135
原创 SpringCloud Alibaba —— Nacos 分类配置
文章目录多环境多项目管理问题Nacos 的图形化管理界面配置管理命名空间Namespace + Group + Data ID 三者关系Namespace + Group + Data ID 是什么?三者关系为什么这样设计?三种方案加载配置DataID 方案Group 方案Namspace 方案多环境多项目管理问题问题一:实际开发中,通常一个系统会准备dev 开发环境test 测试环境prod 生产环境如何保证指定环境启动时服务能正确读取到 Nacos 上相应环境的配置文件呢?问题二:
2020-06-29 10:21:46 4333
原创 SpringCloud Alibaba —— Nacos 配置中心
文章目录基础配置新建一个模块POMYMLbootstrap.ymlapplication.yml主启动类业务类在 Nacos 中添加配置信息Nacos 中的匹配规则测试自带刷新功能 前面使用 SpringCloud Config 实现配置中心 的时候是比较麻烦的,各种配置和依赖很复杂的 SpringCloud Alibaba 退出的 Nacos 除了可以实现注册中心以外,还可以实现配置中心,而且实现非常简单,下面就用 Nacos 实现配置中心基础配置新建一个模块目录结构如下:PO
2020-06-21 10:20:35 4653 4
原创 SpringCloud Alibaba —— Nacos 服务注册
文章目录Nacos 是什么?Nacos 能干嘛?各种注册中心比较Nacos 下载启动Nacos 是什么?一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台简单地说:Nacos 就是注册中心 + 配置中心的结合等价于 Nacos = Eureka + Config + BusNacos 能干嘛?替代 Eureka 做服务注册中心替代 Config 做服务配置中心...
2020-06-17 09:33:33 6321 2
原创 谈谈对 JVM 的理解
文章目录谈谈对 JVM 的理解JVM 的体系结构概述什么是类加载器?三大类加载器sun.misc.Launcher双亲委派采用双亲委派有什么好处?沙箱安全机制Execution EngineNative Interface 本地接口Native Method Stack 本地方法栈Method Area 方法区程序计数器Java 栈栈存储什么?Heap 堆谈谈对 JVM 的理解JVM 的体系结...
2020-06-11 10:41:53 5987
原创 JUC —— CountDownLatch 的使用
文章目录什么是 CountDownLatch?示例CountDownLatch 的构造函数静态内部类 SyncCountDownLatch 常用的方法await() 方法acquireSharedInterruptibly(int arg)tryAcquireShared(int arg)tryAcquireShared(int acquires)doAcquireSharedInterrupti...
2020-06-08 10:27:51 4876
原创 SpringBoot 整合 RabbitMQ
文章目录direct 模式消息生产者创建 Maven 工程添加 Maven 依赖application.properties自定义 Exchange(交换机)Controller主启动类消息消费者创建 Maven 工程添加 Maven 依赖application.properties自定义配置类Service测试topic (通配符模式)消息生产者配置 BeanController消息消费者配置 Bean业务类测试direct 模式消息生产者创建 Maven 工程关于怎么创建 Maven 工程这里
2020-06-04 10:53:05 5279
原创 RabbitMQ —— Round-robin 轮询分发
前文消息中间件 —— 简介RabbitMQ —— 介绍RabbitMQ —— 下载、安装RabbitMQ —— 工作模式RabbitMQ —— 简单队列文章目录前文简单队列的不足WorkerQueue(工作队列)连接配置生产者消费者测试总结简单队列的不足耦合性高,生产者一一对应消费者(如果想有多个消费者消费队列中的消息就不 OK 了)队列名变更的话,这时候得同时变更(耦合性高)WorkerQueue(工作队列)什么是工作队列的呢?就是一个生产者对应多个消费者P : 表示生产者中
2020-06-04 10:51:44 5365
原创 RabbitMQ —— 简单队列
前文消息中间件 —— 简介RabbitMQ —— 介绍RabbitMQ —— 下载、安装RabbitMQ —— 工作模式文章目录前文创建 Maven 工程添加 Maven 依赖连接配置生产者测试消费者新的 API(DefaultConsumer)创建 Maven 工程添加 Maven 依赖<dependencies> <dependency> <groupId>com.rabbitmq</groupId> <art
2020-06-04 10:50:25 4929
原创 RabbitMQ —— 工作模式
文章目录发布订阅消息生产者消息消费者测试发布订阅1、一个生产者将消息发送给交换机2、与交换机绑定的有多个队列,每个消费者监听自己的队列3、生产者将消息发送给交换机,由交换机将消息转发到绑定此交换机的每个队列,每个绑定交换机的队列都将接受到消息4、如果消息发给没有绑定队列的交换机上消息将丢失消息生产者package com.java.rabbitmq.public_subject;import com.java.rabbitmq.util.ConnectionUtils;import c
2020-06-04 10:49:12 4898 2
原创 RabbitMQ —— 下载、安装
文章目录下载RabbitMQErlang安装ErlangRabbitMQ运行添加 Adminvirtual hosts 管理测试下载RabbitMQ这里下载的是 Windows 版本的 RabbitMQ ,下载地址 https://www.rabbitmq.com/install-windows.htmlErlang在使用 RabbitMQ 之前需要先安装 RabbitMQ 的运行环境 Erlang,就好比使用 ActiveMQ 的时候需要依赖 Java 环境,Erlang 下载地址下载对应
2020-06-04 10:47:19 5030
原创 RabbitMQ —— 介绍
文章目录介绍什么是 AMQP?JMS 是什么?应用场景市场上还有哪些 MQ?为什么使用 RabbitMQ?快速入门RabbitMQ 的工作原理消息发布接收流程发送消息接收消息介绍 MQ 全称为 Message Queue,即消息队列,RabbitMQ 是由 Erlang 语言开发,基于 AMQP(Advanced Message Queue Protocol ,高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛,RabbitMQ 官方地址
2020-06-04 10:43:29 13020 2
原创 SpringCloud —— Sleuth 分布式请求链路跟踪
文章目录概述为什么会出现这个技术?需要解决哪些问题?什么是 Sleuth ?概述为什么会出现这个技术?需要解决哪些问题?在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协同产生最后的请求结果,每一个前端请求会形成一条复杂的分布式服务调用链路,链路中的任何一环节出现高延时或错误都会引起整个请求最后的失败什么是 Sleuth ?SpringCloud Sleuth 提供了一套完整的服务跟踪的解决方案,在分布式系统中提供追踪解决方案并且兼容支持了 zipkin...
2020-06-01 10:27:47 5139
原创 ActiveMQ —— Java 连接 ActiveMQ(发布订阅 Topic)
文章目录发布订阅消息传递域中,目的地被称为主题(topic)生产端代码消费端代码启动 ActiveMQ运行程序两种模式的区别两大模式比较发布订阅消息传递域中,目的地被称为主题(topic)发布 / 订阅消息传递域的特点如下:(1)生产者将消息发布到 topic 中,每个消息可以有多个消费者,属于 1:N 关系(2)生产者和消费者之间有时间上的相关性,订阅某一个主题的消费者只能消费 自它订...
2020-05-28 10:08:45 6949
原创 SpringBoot 整合 JPA
文章目录SpringData 的特点统一的 Repository编写实体类编写 DAO基本配置启动应用增删改查编写 Controller新增查询删除SpringData 的特点SpringData 为我们提供使用统一的 API 来对数据访问层进行操作。这主要是 SpringData Commons 项目来实现的。SpringData Commons 让我们在使用关系型或者非关系型数据访问技术时都基于 Spring 提供的统一标准,标准包含了 CRUD(创建、获取、更新、删除)、查询、排序和分页的相关操作
2020-05-27 10:27:15 5119 1
原创 SpringBoot 整合 ActiveMQ
文章目录队列队列生产者新建 Maven 工程pom.xmlapplication.yml配置 Bean消息生产者代码主启动类测试单元定时推送消息修改 Queue_Produce 新增定时投递方法修改主启动类直接开始主启动类,间隔发消息队列消费者创建 Maven 工程pom.xmlapplication.yml配置 Bean主启动类发布订阅Topic 生产者创建 Maven 工程pom.xmlapplication.yml配置 BeanTopic_Produce主启动类Topic 消费者创建 Maven 工程
2020-05-23 11:37:20 5762
原创 ActiveMQ —— Spring 整合 ActiveMQ
文章目录添加依赖Spring 配置文件队列生产者消费者主题修改 applicationContext.xml 文件在 Spring 里面实现消费者不启动,直接通过配置监听完成添加依赖<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.5</v
2020-05-23 11:36:30 5370
一款强力有效的卸载工具
2024-02-23
Python 实现的 word 转 pdf 小工具
2020-03-11
Java反编译工具——jad.exe
2019-11-23
ClassRandom.exe
2019-11-21
Python 实现的解压缩工具-zipfile.exe
2019-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人