自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 资源 (7)
  • 收藏
  • 关注

原创 常用23种设计模式及其分类(创建型模式、结构型模式、行为型设计模式)

设计模式设计模式是一套被反复使用、经过分类编目的代码设计经验的总结。使用设计模式是为了复用成功的设计和体系结构、复用相似问题的相同解决方案,保证代码可靠性,使代码编制真正工程化,能够适应需求的变化。 23 种设计模式,描述如下: 1.抽象工厂(Abstract Factory)。提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 2.工厂方法(F...

2019-11-07 20:23:45 1362

原创 简单易懂------什么是Docker和K8S,以及它的作用

2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。LXC,就是Linux容器虚拟技术(Linux container)后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。Docker技术诞生之后,并没有引起行业的关注。...

2019-05-21 15:42:16 5798

原创 JVM基础学习:基本原理、JVM结构、垃圾回收机制及回收算法、jdk1.8和jdk1.7区别

1、JDK的基本概念我们可以把Java程序设计语言、Java虚拟机、 Java API类库这三部分统称为JDK( Java Development Kit),JDK是用于支持Java程序开发的最小环境。另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE( Java RuntimeEnvironment),JRE是支持Java程序运行的标准环境。...

2019-03-25 13:32:30 5759 1

原创 四次挥手过程以及为什么要等两个时间周期?

四次挥手(客户端和服务端均可以发起): 1、客户端发起、请求断开链接。发送报文FIN=1,当FIN=1的时候,表明此报文的发送方已经完成了数据的发送,没有新的数据要传送,并要求释放链接。客户端进入FIN-WAIT-1(终止等待1)状态。2、服务器收到客户端的请求断开链接的报文之后,返回确认信息。ACK=1,服务器进入CLOSE-WAIT(关闭等待)状态。此时客户端不能给服务器发...

2018-08-19 17:17:07 4753

原创 十大经典排序算法基本思想和图解(冒泡、插入、选择、快速、希尔、堆、归并)

算法分类十种常见排序算法可以分为两大类:1.非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。2.线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。  算法复杂度:图片名词解释:n: 数据规模k:...

2018-08-06 19:21:49 7926

原创 LeetCode上四道shell编程题解析

LeetCode19201题目描述写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。为了简单起见,你可以假设:1. words.txt只包括小写字母和''。2. 每个单词只由小写字母组成。3. 单词间由一个或多个空格字符分隔。02(words.txt)文件内容 the day is sunny the thethesunnyisis03输出(以词频降序排列): ...

2021-03-08 18:22:49 388

原创 什么是幂等性?如何实现幂等性

目录一、什么是幂等性二、什么是接口幂等性三、为什么需要实现幂等性四、引入幂等性后对系统的影响五、Restful API 接口的幂等性六、如何实现幂等性方案一:数据库唯一主键方案二:数据库乐观锁方案三:防重 Token 令牌方案四、下游传递唯一序列号七、实现接口幂等示例1、Maven 引入相关依赖2、配置连接 Redis 的参数3、创建与验证 Token 工具类4、创建测试的 Controller 类5、创建 SpringBoot 启动类.

2021-03-04 18:23:19 5981 3

原创 shell入门学习

目录Shell 编程入门走进 Shell 编程的大门为什么要学Shell? 什么是 Shell? Shell 编程的 Hello WorldShell 变量Shell 编程中的变量介绍 Shell 字符串入门 Shell 字符串常见操作 Shell 数组Shell 基本运算符算数运算符 关系运算符 逻辑运算符 布尔运算符 字符串运算符 文件相关运算符shell流程控制if 条件语句 for 循环语句 while 语句shell 函数不带参数没.

2021-03-02 11:18:13 388

原创 MySQL优化总结

概述为什么要优化系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比如何优化设计数据库时:数据库表、字段的设计,存储引擎 利用好MySQL自身提供的功能,如索引等 横向扩展:MySQL集群、负载均衡、读写分离 SQL语句的优化(收效甚微)字段设计字段类型的选择,设计规范,范式,常见设计案例原则:尽量使用整型表示字符串存储IPINET_ATON(str),..

2021-02-19 14:24:11 242

原创 Java 运算符详解(&、&&、|、||、^、<<、>>、~、>>>)

Java运算符大致分为逻辑运算符(&&,||,!)、算数运算符(+, -, *, / ,+=)、位运算符(^,|,&)、其他运算符(三元运算符)不了解二进制运算的同学可以看我的另一篇有关于进制运算的 二进制运算 &(按位与) public class Test{ public static void main(str[] arg){ int i = 3&5;//1 int j = 5&7;//5 .

2021-01-06 16:57:09 5270

原创 java8关于常用的list的操作

java8常用list操作List<Object> lists = Lists.newArrayList();1.去重//根据某一元素去重List<Object> list = lists.stream().collect(Collectors.collectingAndThen( Collectors.toCollection(() -> new TreeSet<>( Comparator.compar

2020-09-03 17:27:08 763

原创 线程池7大参数,三大方法,四大拒绝策略

为什么要使用线程池?线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后再线程创建后启动这些任务如果线程的数量超过最大数量,超过数量的线程将排队等候,等其他线程执行完毕,再从队列中取出任务来执行特点:线程复用,控制最大并发数,管理线程一、降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗二、提高响应速度,当任务到达时,任务可以不需要的等到线程创建就能够立刻执行三、提高线程的可管理性,线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的

2020-07-29 19:15:28 10076 1

原创 Mac的iTerm2常用快捷键

标签 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:command + enter 查找:command + f 分屏 垂直分屏:command + d 水平分屏:command + shift + d 切换屏幕:command + option + 方向键 或者 command + [ ] 命令 查看历史命令:comman

2020-07-27 11:51:11 2333

原创 91.Decode Ways leetcode 32. 最长有效括号

32. 最长有效括号给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"class Solution { public int longestValidParentheses(String s) { int max = 0; Stack<Int...

2020-07-21 19:33:45 108

原创 zset---skiplist

跳跃表的原理跳跃表的思想来自于一篇论文:Skip Lists: A Probabilistic Alternative to Balanced Trees. 如果想要深入了解跳跃表,可以阅读论文原文。这里引用论文中的一幅图对跳跃表的原理作一个简单的说明。上图用a,b,c,d,e五种有序链表及其变式(变式的名字是我随便起的)说明了跳跃表的motivation.[a]单链表:查询时间复杂度O(n)[b]level-2单链表:每隔一个节点为一个level-2节点,每个level-2节点有2个后继指

2020-07-20 18:05:02 262

原创 MySQL 查询本日、昨日、本月、上月、本季度、上季度、近7天、近30天数据

查询当天的所有数据SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=0;select * from 表名 where to_days(字段) = to_days(now());查询昨天的所有数据SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=-1;select * from 表名 where to_days(now())-to_days(字段) == - 1;查询本月的所有数据SELECT*FROM...

2020-07-06 15:23:19 394

原创 数据库面试知识点汇总

数据库面试知识点汇总目录数据库面试知识点汇总一、基本概念1.主键、外键、超键、候选键2.为什么用自增列作为主键二、索引三、事务四、存储引擎五、优化六、数据库锁七、其他一、基本概念1.主键、外键、超键、候选键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:是最小超键,即不含有多余属性的超键。主键:数据库表中对储存数据对象予以唯一和完整标识的数

2020-07-01 18:30:32 663

原创 mysql查询表所有字段的属性和注释

select * from information_schema.columns where table_name='表名'

2020-06-24 16:45:15 1144

原创 java时间计算

java时间的计算 //1年后 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) + 12); System.out.println("-------当前加12个月-----" + calendar.getTim

2020-06-23 19:29:48 1019

原创 对象转换工具MapStruct

MapSturct是一个生成类型安全, 高性能且无依赖的 JavaBean 映射代码的注解处理器(annotation processor)。一、入门篇1、入门案例1.1 entityimport lombok.Data;@Datapublic class Order { /** * 订单id */ private Long id; /** * 订单编号 */ private String orderSn; .

2020-05-25 19:44:50 487

原创 Redis Cache 通用版

Redis Cache1、BasicCacheAopimport com.google.common.base.Splitter;import java.lang.reflect.Array;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Type;import java.util.*;import java.util.concurrent.Concurre

2020-05-18 10:59:11 215

原创 redis单线程为什么执行速度这么快

Redis之所以执行速度很快,主要依赖于以下几个原因:(一)纯内存操作,避免大量访问数据库,减少直接读取磁盘数据,redis将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度快;(二)单线程操作,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗;(三)采用了非阻塞I/O多路复用机制多路复用原理:用户首先将需要进行IO操作的socket添加

2020-05-14 20:57:18 192

原创 redis学习

Redis 数据类型Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。基础知识学习:https://www.runoob.com/redis/redis-tutorial.html各个数据类型应用场景:类型 简介 特性 场景 String(字符串) 二...

2020-04-01 14:13:09 138

原创 Springboot参数校验

1、 @Validated @RequestBody 配合使用2、 @Validated@RequestParam 配合使用3、常用参数校验java validation 注解JSR提供的校验注解: @Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue ...

2020-03-31 15:55:05 275

原创 Mac 快捷键

总结一下Mac快捷键的图形符号:Mac中主要有四个修饰键,分别是Command,Control,Option和Shift。转存失败重新上传取消END基本的快捷键Command是Mac里最重要的修饰键,在大多数情况下相当于Windows下的Ctrl。所以以下最基本操作很好理解: Command-Z 撤销  Command-X 剪切   Command-C 拷贝(Copy)  ...

2020-03-23 17:38:00 369

原创 Mac中使用git

一、安装git程序git客户端程序地址:https://git-scm.com/download/mac 打开终端,输入命令:git --version ,测试是否安装成功二、创建SSH步骤一:在终端输入命令:cd ~/.ssh如果出现 -bash: cd: /Users/glamor/.ssh: No such file or directory,说明之前没有用过,直接进入步骤...

2020-03-23 17:35:03 1249

原创 多表联结(左连接(left join)、右连接(right join)、内连接(inner join)、union 、 union all)

多表的联结又分为以下几种类型:1)左联结(left join),联结结果保留左表的全部数据2)右联结(right join),联结结果保留右表的全部数据3)内联结(inner join),取两表的公共数据union 和 union all区别:1、显示结果不同union会自动压缩多个结果集合中的重复结果,而union all则...

2020-03-17 11:04:18 3094

原创 Kafka,ActiveMQ,RabbitMQ等消息队列基础介绍

目录一、前言二、消息队列应用场景2.1异步处理2.2应用解耦2.3流量削锋2.4日志处理2.5消息通讯三、消息中间件示例3.1电商系统3.2日志收集系统四、JMS消息服务4.1消息模型4.1.1 P2P模式4.1.2 Pub/sub模式4.2消息消费4.3 JMS编程模型五、常用消息队列5.1 ActiveMQ5...

2020-01-09 12:00:26 450

原创 LeetCode刷题-数据库

SQL练习目录175.组合两个表176. 第二高的薪水175.组合两个表表1:Person+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId ...

2019-12-05 15:14:57 226

原创 LeetCode刷题中

LeetCode刷题 两数之和 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。public class SumTwoNums ...

2019-12-04 18:32:30 156

原创 Java的排序Arrays.sort和Arrays.parallelSort

Arrays.sort Arrays.sort来对原生数组进行排序,这个API会使用归并排序或者Tim排序( Timsort是结合了合并排序(merge sort)和插入排序(insertion sort)而得出的排序算法,它在现实中有很好的效率)来进行排序。 Timsort的核心过程 1、数组个数小于32的情况使用二分插入排序2、数组大于32时, 先算出一个合适的大小,在...

2019-11-18 18:28:56 1439

原创 正则表达式

工具 RegexBuddy 语法结构字符 [ab5@] 匹配"a"或"b"或"5"或"@" [^abc] 匹配a、b、c之外的任意字符 [f-k] 匹配“f"到"k"之间的字符 [^A-F0-3] 匹配“A"-"F","0"-"3"之外的任意一个字符 \d 任意一个数字,0~9 \w 任意一个字母、数字、汉字或下划线...

2019-11-12 11:45:07 153

原创 敏捷过程开发方法

常用的敏捷过程开发方法有极限编程XP、敏捷建模( Agile Modeling)、自适应软件开发( Adaptive Software Development)、水晶方法体系( Crystal)和并列争球法。各开发方法描述如下1.极限编程XP:一种轻量(敏捷)、高效、低风险、柔性、可预测、科学而且充满乐趣的软件开发方法。与其他方法对比,最大的不同在于 在更短的周期内,更早地提供具体、...

2019-11-08 19:30:41 1305

原创 数据库关系模式

1.数据库关系模式中三级两映像结构知识点( 1)模式(基本表)模式即逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。一个数据库只有一个概念模式,即对应数据库中设计的基本表。( 2)外模式(视图)外模式也称子模式或用户模式,是数据库用户(包括程序员和最终端用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,外模式主要描述用户视图...

2019-11-08 19:30:14 6686

原创 内聚、多态、耦合

内聚是指一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部的概念的自然扩展。设计时应该力求高内聚,理想内聚的模块应当恰好做一件事情。1.偶然内聚。一个模块的各成分之间毫无关系。比如:一组语句在程序的多处出现,为了节省内存空间,这些语句放在一个模块中,该模块的内聚是偶然内聚的。2.逻辑内聚。把几种逻辑上相关的功能组放在同一模块中。3.瞬时内聚(时间内聚)。一个模块所包含的任务必须在同...

2019-11-08 19:28:05 788

原创 操作系统知识:程序计数器(pc)、指令寄存器(IR)、通用寄存器(GR)、状态寄存器(SR)、程序状态字PSW

程序计数器(PC,Program counter),用于存放指令的地址。为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称,为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而...

2019-10-28 16:43:01 37613 5

原创 二进制减法计算,负数原码、反码和补码之间的关系

二进制减法类似于十进制的减法,我们从十进制的减法来推出二进制减法如何进行运算。二进制计算例如101001-011010=001111(41-26=15)的运算。灰色部分为计算过程,绿色字为被减一得到的数,红色字为借一后得到的数。在运算过程中,从右往左逐位进行计算。1-0=1; 0不够减1,向前借一后加2变成2;2-1=1; 0在上一步被借一所以减为-1,-1不够减...

2019-10-28 10:46:44 7256

原创 UML图知识点总结

目录 一、基本概念  1、用例图(UseCase Diagrams):2、类图(Class Diagrams):  2.1.泛化  2.2.实现  2.3.关联  2.4.聚合   2.5.组合  2.6.依赖    2.7 各种类图关系3、对象图(Object Diagrams):4、状态图(Statechart Diagrams):5...

2019-10-24 14:08:18 1928

原创 OSI网络七层各层的常见设备以及常用计算机网络端口号

ISO网络七层各层的常见设备:常用计算机网络端口号:20、21 FTP FTP服务器以及客户端所开放的端口,用于上传、下载。进行FTP文件传输中,客户端首先连接到FTP服务器的21端口,进行用户的认证,认证成功后,要传输文件时,服务器会开一个端口为20来进行传输数据文件。 22 Ssh PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一...

2019-10-23 17:39:58 2985

原创 Postman打开,却没有界面

多屏接入引起的问题解决方式:点击postman在任务栏的图标,然后alt + 空格,会弹出来窗口选项,选择最大化即可

2019-08-26 16:49:00 6033 8

项目管理师详细资料-试题和课程

项目管理师课程资料,案例分析、试题讲解\项目管理师课程资料,案例分析、试题讲解项目管理师课程资料,案例分析、试题讲解项目管理师课程资料,案例分析、试题讲解项目管理师课程资料,案例分析、试题讲解

2020-03-16

架构师历年真题及真题答案2009-2018.zip

架构师历年真题及真题答案2009-2018,历年真题word版以及历年真题解析word版,答案很详细,高清没有水印

2019-12-18

软考2019年最新试题.rar

软件设计师真题2012-1019试题及答案,内含2012-2019年的试题,以及2015-2019年的试题答案解析

2019-10-23

AWVS10.5.7z.rar

安全扫描工具,awvs,AWVS是一款Web漏洞扫描工具,通过网络爬虫测试网站安全,检测流行的Web应用攻击,如跨站脚本、sql 注入等。据统计,75% 的互联网攻击目标是基于Web的应用程序。

2019-05-22

2018名企软件开发真题

2018名企软件开发真题,内含笔试面试流程及问题,以及各大公司真题及答案密码:nowcoder

2018-08-19

软件测试常考知识点

2018年程序员笔面试,软件测试常考知识点,基本知识点汇总

2018-08-19

2018年面试计算机网络基本知识点

2018年程序员笔面试,计算机网络基本知识点总结,包含三次握手,四次挥手,ip地址等常考知识点

2018-08-19

空空如也

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

TA关注的人

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