自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 资源 (4)
  • 收藏
  • 关注

原创 RabbitMQ快速入门 学习笔记

MQ本质上是一个队列,FIFO先入先出原则。只不过队列中存放的内容是message而已。还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。默认情况下RabbitMQ退出或由于某种原因崩溃时,它忽略队列和消息,除非告知它不要这样做。确保消息不会丢失需要做两件事:我们需要将队列和消息都标记为持久化。

2023-03-27 11:36:01 692 1

原创 Redis学习笔记,Redis事务、缓存击穿、缓存穿透、缓存雪崩、分布式锁

Redis一、概述1.1 NoSQLNoSQL=Not Only SQL,泛指非关系型数据库方便扩展,数据之间无关性大数据量高性能(Redis一秒可写8万次,可读11万次)数据类型多样型,不需要事先设计数据库(随取随用)1.2 Redis是开源的使用C语言编写的、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。Redis默认有16个数据库[0-15],默认使用0号数据库# 切换数据库select [数据库编号]# 查看数据库大小DB

2022-03-12 09:17:30 2245

原创 Java,从网络URL中下载文件并保存到本地

Java,从网络URL中下载文件并保存到本地1. 代码演示创建Maven项目,导入Hutool工具包<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.4.5</version></dependency>代码import cn.hutool.c

2021-11-02 17:04:17 4774 1

原创 Docker基础命令

文章目录Docker一、概述二、核心概念三、Docker的安装四、常用命令4.1 帮助命令4.2 镜像命令4.3 容器命令五、Docker镜像5.1 概述5.2 镜像commit命令Docker一、概述Docker是一个开源的应用容器引擎Docker支持将软件编译成一个镜像,然后在镜像中做好各种软件的配置,将镜像发布出去,其他使用者可以直接使用镜像,而不需要进行配置运行中的镜像称为Docker容器,容器启动的速度非常快二、核心概念概念docker主机(host):安装了D

2021-10-21 14:54:57 213

原创 SpringBoot核心功能,配置文件、Web开发、单元测试

文章目录一、配置文件1. properties文件2. yaml文件2.1 简介2.2 基本语法2.3 数据类型二、Web开发1. 简单功能1.1 静态资源访问1.2 欢迎页和Favicon1.3 静态资源配置原理2. 请求参数处理2.1 常用注解3. 响应数据3.1 响应JSON4. 拦截器6. 文件上传7. 异常处理三、数据访问1. SQL1.1 配置数据源2. NoSQL四、单元测试五、其他特性1. 环境切换一、配置文件1. properties文件properties文件的用法比较熟悉,这里就

2021-10-18 14:40:54 264

原创 Java替换或删除字符串中的指定字符

1. 代码演示public class TestDemo { @Test public void test() { //需要替换的字符串 String target = "验证码:${code},您正在登录管理后台,5分钟内输入有效。"; //正则表达式 String regEx = "[$]"; //替换之后的新字符 String replace = ""; Patt

2021-09-09 14:34:59 1400

原创 SpringBoot基础,特点、底层注解、自动配置原理

一、SpringBoot入门1. SpringBoot特点1.1 依赖管理 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.3</version> </parent&

2021-09-02 18:02:48 168

原创 win10 解决端口被占用

win10 端口被占用查看端口netstat -aon|findstr "端口"关闭进程taskkill /f /t /im 22924

2021-09-02 17:57:55 113

原创 SpringBoot与缓存原理分析

SpringBoot与缓存一、JSR107缓存规范1.1 简述Java Caching定义了5个核心接口CachingProvider:定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期间访问多个CachingProvider。CacheManager:定义了创建、配置、获取、管理和控制多个唯一命名的Cache,这些Cache存在于CacheManager的上下文中。一个CacheManager被一个CachingProvider拥有。Cache:是一个类

2021-08-20 11:45:49 213

原创 Java 8 新特性整理

Java8 新特性一、Lambda表达式1.1 简介Lambda是一个匿名函数,可将该表达式理解为一段可传递的代码。可以使代码更简洁灵活,使代码风格更加紧凑,提升Java语言的表达能力。 /** * @return void * @Param * @Date 22:04 2021/7/26 * @Description: 匿名内部类 **/ @Test public void test() { Comparato

2021-08-13 11:20:04 96

原创 Java反射学习笔记

Java反射机制一、概述概述Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期间借助Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法加载完类之后,在堆内存的方法区中就产生一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的内部结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射相关APIjava.lang.Class:代

2020-08-01 11:07:15 173

原创 Java异常处理学习笔记

Java异常处理一、概述编写代码过程中难免会出现一些问题,例如客户端的输入格式、网络是否流畅等。此时程序员则需要考虑处理异常,Java语言中发生的不正常情况称为"异常"(开发过程中的语法错误或逻辑错误不是异常)Java程序在执行过程中发生的异常事件可分为两类:Error:Java虚拟机无法解决的严重问题。如JVM系统内部错误、资源耗尽等严重情况。例如StackOverflowError和OOMException:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理

2020-07-31 09:09:44 175

原创 Java常用类,String、Arrays工具类、日期API、Java比较器

Java中的常用类一、String1.1 概述String类代表字符串,Java中所有字符串字面值(“abc”)都作为该类的实例String是一个final类(不可被继承),代表不可变的字符序列字符串是常量,用双引号引起来表示。它们的值在创建后不能被修改String对象的字符内容是存储在一个字符数据vlaue[]中String类实现了Serializable接口:表示字符串支持序列化实现了Comparable接口:即String可以比较大小1.2 不可变性通过字面量的方式(区别去n

2020-07-31 09:07:02 214

原创 Java面向对象总结

面向对象编程一、面向对象概述1. 面向对象的编程思想1.1 面向过程(POP)与面向对象(OOP)二者都是一种思想,面向对象是相对于面向过程而言。面向过程强调的是功能行为,以函数为最小单位。面向对象,将功能封装进对象中,强调具备了功能的对象,以类为最小单位。面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如抽象、分类、继承、聚合、多态等“人把大象装进冰箱”人{ 打开(冰箱){ 冰箱.打开(); } 抬起(大象){ 大象.进入(冰箱); } 关闭(冰箱){

2020-07-28 07:54:12 303 1

原创 Java,LeetCode 21. 合并两个有序链表

链表合并两个有序链表1. 题目描述难易度:简单将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-sorted-lists2. 思路分析遍历两个链表,每次取到两个结点的值进行比较创建新

2020-07-05 20:48:30 182 1

原创 Java,LeetCode 347. 前K个高频元素

堆前K个高频元素1. 题目描述难易度:中等给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:1. 你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。2. 你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。3. 题目数据保证答案唯一,换句话说,数组中前 k 个高

2020-07-05 19:39:30 232

原创 Java,LeetCode 215. 数组中的第K个最大元素

堆数组中的第K个最大元素1. 题目描述难易度:中等在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-arra

2020-07-04 16:29:45 164

原创 Java,LeetCode 701. 二叉搜索树中的插入操作

树二叉搜索树中的插入操作1. 题目描述难易度:中等给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。例如,给定二叉搜索树: 4 / \ 2 7 / \1 3和 插入的值: 5你可以返回这个二叉搜索树: 4 / \ 2 7 / \ /1

2020-07-04 16:13:15 3955

原创 SpringMVC学习笔记

SpringMVC一、概述1.1 三层架构开发框架一般基于两种形式,一种为C/S架构,即客户端/服务器;另一种为B/S架构,即浏览器服务器架构。在JavaEE开发中,几乎都是B/S架构。B/S架构中,系统标准的三层架构包括:表现层、业务层、持久层。表现层:即Web层,它负责接收客户端请求,向客户端响应结果,通常客户端使用HTTP协议请求web层,web需要接收HTTP请求,完成HTTP响应。表现成包括展示层和控制层,控制层负责接收请求,展示层负责结果的展示,表现层依赖业务层,接收到客户端请求一般会

2020-07-04 11:10:03 151

原创 Spring学习笔记

Spring一、概述Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IoC(Inverse Of Control;反转控制)和AOP(Aspect Oriented Programming;面向切面编程)为内核,提供了展现层Spring MVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE企业应用开源框架二、体系结构核心容器:核心容器由spring-core,

2020-07-04 11:09:02 137

原创 MyBatis学习笔记

MyBatis一、概述1.1 框架软件开发中的一套解决方案,不同的方案解决不同的问题。框架封装了很多的细节,使开发者以极简的方式实现功能,大大提高了开发效率1.2 MyBatisMyBatis是一个Java持久层框架,它封装了jdbc,使开发者只关注sql语句本身MyBatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中的sql的动态参数进行映射生成最终执行的SQL语句采用ORM思想解决了实体和数据库映射的问题,对JDBC进行封装,

2020-06-29 23:12:34 187

原创 Servlet详解

Servlet一、概述server appletServlet是一个接口,定义了java类被浏览器访问到(Tomcat识别)的规则将来我们定义一个类,实现Servlet接口,复写方法二、快速入门创建JavaEE项目定义一个类,实现Servlet接口实现接口中的抽象方法public class ServletDemo1 implements Servlet { @Override public void init(ServletConfig servlet

2020-06-29 23:09:52 165

原创 Java,LeetCode 258. 各位相加

数学各位相加1. 题目描述难易度:简单给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-digits2. 思路分析计算num每一位数字之和判断,如果满足条件则直接返回不满足条件则继续循环计算3. 代码演示/**

2020-06-28 17:36:36 172

原创 Java,JDBC核心技术,线程池,事务

文章目录JDBC核心技术一、概述1. 数据的持久化2. Java中的数据存储技术3. JDBC介绍4. JDBC体系结构5. JDBC程序编写步骤二、获取数据库连接三、PrepareStatement1. 操作和访问数据库2. 使用Statement操作数据表的弊端3. PreparedStatement VS Statement4. 使用PreparedStatement操作数据表4.1 添加数据4.2 批量操作四、操作BLOB类型字段1. BLOB类型2. 对BLOB类型数据的操作2.1 插入操作2.2

2020-06-24 17:44:16 358 1

原创 Java,LeetCode 14. 最长公共前缀

字符串,最长公共前缀1. 题目描述难易度:简单编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-common-prefix/2. 思路分析

2020-06-22 16:05:40 192

原创 Java,LeetCode 6. Z 字形变换

字符串,Z 字形变换1. 题目描述难易度:中等比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s = “LEETCODEISHIRI

2020-06-21 18:03:40 135

原创 Java,LeetCode 316. 去除重复字母

栈,去除重复字母1. 题目描述难易度:困难给你一个仅包含小写字母的字符串,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例 1:输入: “bcabc”输出: “abc”示例 2:输入: “cbacdcbc”输出: “acdb”来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicate-letters2. 思路分析以"bcabc"为例,首

2020-06-19 17:22:37 282

原创 解决华为交换机删除VLan时报错:Error: The VLAN has a L3 interface. Please delete it first.

解决华为交换机 Error: The VLAN has a L3 interface. Please delete it first.一、问题描述当删除交换机的某个vlan时,有时会报上述错误Error: The VLAN has a L3 interface. Please delete it first.二、解决方法首先查看该vlanif接口是否绑定ip地址(以vlan40为例)[Huawei]int vlan 40[Huawei-Vlanif40]dis this#interf

2020-06-15 18:52:37 17187

原创 华为eNSP环境,WLAN简介与组网,AP+AC详细配置

文章目录WLAN简单组网一、概述二、802.11基本元素三、WLAN拓扑结构3.1 Ad-Hoc3.2 IBSS3.3 WDS四、AP4.1 概述4.2 胖AP4.3 瘦AP五、CAPWAP简介六、AP和AC工作过程6.1 瘦AP发现AC6.2 AP和AC详细工作过程6.2.1 动态发现6.2.2 CAPWAP隧道建立过程七、综合实验7.1 实验组网7.2 实验配置7.2.1 瘦AP配置7.3 捕获数据包八、参考资料WLAN简单组网一、概述无线局域网(Wireless Local Area Netw

2020-06-08 16:19:17 41147 15

原创 Java,JVM虚拟机详解,JVM从入门到了解

文章目录JVM概述及类加载子系统一、概述1.1. 虚拟机1.2. Java虚拟机1.2.1 概述1.2.2 作用二、JVM的整体结构三、JVM架构模型四、JVM生命周期4.1. 虚拟机的启动4.2. 虚拟机的执行4.3. 虚拟机的退出五、类加载过程5.1. 加载5.2. 链接5.2.1 验证(Verify)5.2.2 准备(Prepare)5.2.3 解析3. 初始化六、类加载器分类6.1. 启动类加载器6.2. 扩展类加载器6.3. 应用程序类加载器七、双亲委派机制7.1 概述7.2 工作原理7.3 优势

2020-06-07 23:42:52 693

原创 网络安全综合实验(eNSP)(DHCP、OSPF、NAT、防火墙、ACL)

网络安全综合实验一、概述1.1 实验背景及要求配置ACL,过滤具有某种特点的分组。配置NAT。在企业内部结构化分层使用NAT地址。实验测试一种网络攻击,比如SYN_Flood、MAC泛洪攻击或ARP攻击。配置防火墙,禁止某种网络服务(防火墙在企业内网与外网之间)。配置VPN。企业内网与外网之间可能有防火墙,也可能有NAT。从企业外部,用户不能直接访问企业内部。企业员工外出,或跨地区、跨国家企业都有跨越公众互联网,访问企业内部网络的需求。配置NAT某种VPN,比如L2TP VPN 或SSL V

2020-06-04 11:21:30 19311 39

原创 Java,LeetCode 20. 有效括号

栈、字符串有效的括号1. 题目描述难易度:简单给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”

2020-05-27 14:59:31 126

原创 Java,LeetCode 945. 使数组唯一的最小增量

数组使数组唯一的最小增量1. 题目描述难易度:中等给定整数数组 A,每次 move 操作将会选择任意 A[i],并将其递增 1。返回使 A 中的每个值都是唯一的最少操作次数。示例 1:输入:[1,2,2]输出:1解释:经过一次 move 操作,数组将变为 [1, 2, 3]。示例 2:输入:[3,2,1,2,1,7]输出:6解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, 5, 7]。可以看出 5 次或 5 次以下的 move 操作是不能让数组的每个值唯一

2020-05-26 17:15:27 144

原创 Java,LeetCode 73. 矩阵置零

数组矩阵置零1. 题目描述难易度:中等给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]来源:力扣(LeetCode)链接:h

2020-05-23 17:08:32 173

原创 Java,LeetCode 54. 螺旋矩阵

数组螺旋矩阵1. 题目描述难易度:中等给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7]来源:力扣(LeetCode)

2020-05-21 16:23:26 244

原创 Java,LeetCode 141. 环形链表

链表、双指针环形链表1. 题目描述难易度:简单给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:true解释:链表中有一个环,其尾部连接到第一个节点。示例 3:

2020-05-19 15:59:41 101

原创 Java,LeetCode 209. 长度最小的子数组

双指针,长度最小的子数组1. 题目描述难易度:中等给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-size-subarra

2020-05-19 14:55:51 145

原创 Java,LeetCode 121. 买卖股票的最佳时机

双指针,买卖股票的最佳时机1. 题目描述难易度:简单给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同

2020-05-18 15:33:52 95

原创 Java单例模式---饿汉式,懒汉式,双重校验锁

单例模式一、概述设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式二、单例设计模式(Singleton)采取一定的方法保证在软件系统中对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们让类在虚拟机中只产生一个对象,首先必须将类的构造器私有化(private),这样就不能用new操作符在类的外部产生该类的对象,但在类的内部仍可以产生类的对象。因为在类的外部开始无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只

2020-05-17 09:58:12 634

原创 Java,LeetCode 16. 最接近的三数之和

双指针,最接近的三数之和1. 题目描述难易度:中等给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems

2020-05-15 18:38:12 179

网络安全综合组网实验.7z

该资源为本人博客中的网络安全综合实验的源码包,下载之后可直接使用,拓扑中有不懂的地方可以私信我,防火墙的初始账号为admin,密码为Admin@123

2021-11-17

华为eNSP环境,WLAN组网

该资源为博客中WLAN简单组网的拓扑和源码,有不懂的地方可以私信,配置方面有问题的,可以根据博客中的步骤做简单修改

2020-12-13

华为eNSP防火墙USG6000v安装包

该资源为华为eNSP中防火墙USG6000v的安装包,下载后可直接使用,初始账号为admin,密码为Admin@123,具体的可见本人相关博客

2020-11-19

综合组网实验源码和拓扑

该资源为本人博客综合组网实验的源码和拓扑,有不懂的地方可以私信,若拓扑不能正常使用,可根据博客内容做检查和配置

2020-11-19

空空如也

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

TA关注的人

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