自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (1)
  • 收藏
  • 关注

原创 K8s的一些问题

一.k8s保存群局状态的是什么?etcd(键值对存储)二.资源统一入口,提供认证,授权,访问控制,注册以及发现等机制是sm

2021-06-29 15:00:29 128

原创 Docker file 相关问题

基于那个基本镜像构建是那个关键字?FROM把文件拷贝进镜像是那个命令?ADD和COPY那个命令在构建的时候执行?

2021-06-08 10:26:41 117

原创 docker 常见的一些问题

1.docker如何更换镜像源修改/etc/docker/daemon.json,把#添加如下网易镜像源{"registry-mirrors": ["http://hub-mirror.c.163.com"]}

2021-06-04 11:07:20 127

原创 CentOS7下docker安装

一.确认当前操作系统是CentOS7lsb_release -a二.确认系统为64位、系统内核版本为 3.10 以上uname -r三.确认是否安装dockeryum list installed | grep docker四.安装dockeryum -y install docker五.启动dockersystemctl start docker六.查看docker是否已经启动systemctl status docker七。设置docker卡机自启动s

2021-06-03 10:51:31 94 1

原创 计算机网络

一.计算机网络体系结构1.OSI的七层体系结构(概念清晰,理论完善,复杂不实用)。(1)网络层 (2)数据链路层 (3)网络层 (4)运输层 (5)会话层 (6)表示层 (7)应用层2.TCP/IP体系结构(使用非常广泛)(1)网络接口层(2)网络层IP (3)运输层(TCP/IP) (4)应用层(TELENT,FTP,SMTP)3.五层协议的体系结构(一般学习以这个...

2021-03-20 00:01:24 50

原创 React语法

一.元素渲染:元素是构成 React 应用的最小单位,它用于描述屏幕上输出的内容。如:<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>Hello React!</title><script src="https://cdn.stati...

2021-03-20 00:01:10 87

原创 Git 修改用户名以及提交邮箱

验证当前本地属性:怎么知道本地有设置?git config --local --list看一眼。怎么设置本地属性?git config user.name/email。解决方法:法一:使用命令修改git的用户名和提交的邮箱 1)修改全局 如果你要修改当前全局的用户名和邮箱时,需要在上面的两条命令中添加一个参数,--global,代表的是全局。 命令分别为:git config --global user.name 你的目...

2021-03-19 23:55:02 1069

原创 并发之AQS原理(三) 如何保证并发

1. 如何保证并发AbstractQueuedSynchronizer 维护了一个state(代表了共享资源)和一个FIFO线程等待队列(多线程竞争资源被阻塞时会将线程放入此队列)。由于state是由volatie修饰的所以该变量的改动都是立等可见的。1.共享资源状态private volatile int state;2. 操作共享资源状态操作方法// 读取该值protected final int getState() { return state;}//

2021-03-19 23:54:40 224

原创 并发之AQS原理(二) CLH队列与Node解析

1.CLH队列与Node节点就像通常医院看病排队一样,医生一次能看的病人数量有限,那么超出医生看病速度之外的病人就要排队。一条队列是队列中每一个人的组织形式。那么每个人决定怎么看待自己在队列中的形态决定了整个队列的形态。比如当每个人都遵守先来后到的原则时,那么最先来的人会站到第一个,之后每个人都会顺序排开。同样的队列这个类不存在,让他们形成队列的是每个节点类的组织形式。所以想分析队列就必须要先分析节点。所谓的CLH队列本质上就是一个双向链表Node就是该链表的节点。当然CLH队列并不是简单

2021-03-19 23:54:20 449

原创 并发之AQS原理(一)

如果说每一个同步的工具各有各的强大,那么这个强大背后是一个相同的动力,它就是AQS.AQS是什么AQS是指java.util.concurrent.locks包里的AbstractQueuedSynchronizer类,抽象的FIFO队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架在了解AQS之前先了解下先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。就是通常情况下

2021-03-19 23:53:47 77

原创 Linux下zookeeper单机版详细安装

1、zookeeper简介  ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。2、zookeeper的详细安装  首先需要下载zookeeper软件  https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/  其次上传软件到ro

2021-03-19 23:52:39 146

转载 GET,POST,PUT,DELETE,OPTIONS等请求方式简单总结

1、GETget请求是用来获取数据的,只是用来查询数据,不对服务器的数据做任何的修改,新增,删除等操作。在这里我们认为get请求是安全的,以及幂等的。安全就是指不影响服务器的数据,幂等是指同一个请求发送多次返回的结果应该相同。特点:get请求会把请求的参数附加在URL后面,这样会产生安全问题,如果是系统的登陆接口采用的get请求,需要对请求的参数做一个加密。get请求其实本身H...

2021-03-19 23:46:48 159

原创 Jenkins+Docker持续集成

本节内容:Jenkins介绍 安装部署Jenkins Jenkins构建maven风格的job Jenkins邮件通知设置 Sonar Jenkins与Docker结合一、Jenkins介绍Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。二、安装部署Jenkins下载地址:https://jenkins.io/download/我这里下载war包安装,版本:...

2021-03-19 23:46:02 944

转载 druid 连接池源码分析

一 java 对数据库的支持java.sql 包的支持,一般使用显示编程的方式。 connection接口、statment接口、ResultSet接口、DriverManager类。image.pngJDBC例子 Connection con = null; //表示数据库的连接对象 PreparedStatement pstmt = null; //表示数据库更新操作 ResultSet result = null; String like_name.

2021-03-19 23:42:26 524

转载 MySQL 技巧:如何实现乐观锁?

使用 MySQL 5.7 做测试,数据库引擎为 InnoDB,数据库隔离级别为可重复读(REPEATABLE-READ),读读共享,读写互斥。在这个隔离级别下,在多事务并发的情况下,还是会出现数据更新的冲突问题。先分析一下更新冲突的问题是如何产生的。假设我们有一张销量表 goods_sale ,表结构如下:字段 数据类型 说明 goods_sale_id varchar(32) 销量 id goods_id varchar(32) 商品 id co

2021-03-19 23:41:16 904

转载 CAS原理分析

CAS的英文为Compare and Swap 翻译为比较并交换。CAS加volatile关键字是实现并发包的基石。没有CAS就不会有并发包,synchronized是一种独占锁、悲观锁,java.util.concurrent中借助了CAS指令实现了一种区别于synchronized的一种乐观锁。什么是乐观锁与悲观锁?悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样当第二个线程想拿这个数据的时候,第二个线程会一直堵塞,直到第一个释放锁,他拿到锁

2021-03-19 23:37:04 98

转载 CentOS7 linux下yum安装redis以及使用

CentOS7 linux下yum安装redis以及使用1.安装redis数据库 1 yum install redis 2.下载fedora的epel仓库yum install epel-release3.启动redis服务systemctl start redis4.查看redis状态systemctl status redissystemctl stop redis 停止服务systemctl restart red

2020-11-05 15:37:32 115

转载 CentOS7.X 中yum安装nginx

nginx官方文档说明:http://nginx.org/en/linux_packages.html#RHEL-CentOS一、安装前准备:yum install yum-utils二、添加源到cd /etc/yum.repos.d/ 目录下新建 vim nginx.repo 文件输入以下信息[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$b.

2020-11-05 15:34:14 82

原创 yum安装rz

yum install lrzsz

2020-11-05 15:19:21 443

转载 Reactor 设计模式

为了应对高并发的服务器端开发,微软在2009年提出了一种更优雅地实现异步编程的方式Reactive Programming即反应式编程。随后其他技术紧随其后,比如ES6通过引入类似的异步编程方式等。在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,Proactor用于异步I/O操作。Reactor模式称之为响应器模式,通常用于NIO非阻塞IO的网络通信框架中。在这之前,需要弄明白几个概念:什么是阻塞和非阻塞?阻塞和非阻塞

2020-10-30 16:33:22 242 2

转载 NIO

1、阻塞与非阻塞阻塞与非阻塞是描述进程在访问某个资源时,数据是否准备就绪的的一种处理方式。当数据没有准备就绪时:阻塞:线程持续等待资源中数据准备完成,直到返回响应结果。 非阻塞:线程直接返回结果,不会持续等待资源准备数据结束后才响应结果。2、同步与异步同步与异步是指访问数据的机制,同步一般指主动请求并等待IO操作完成的方式。 异步则指主动请求数据后便可以继续处理其它任务,随后等待IO操作完毕的通知。老王烧开水:1、普通水壶煮水,站在旁边,主动的看水开了没有?同步的阻塞2、普通水壶煮水

2020-10-14 17:06:26 61

原创 Netty

在开始了解Netty是什么之前,我们先来回顾一下,如果我们需要实现一个客户端与服务端通信的程序,使用传统的IO编程,应该如何来实现?IO编程我们简化下场景:客户端每隔两秒发送一个带有时间戳的"hello world"给服务端,服务端收到之后打印。为了方便演示,下面例子中,服务端和客户端各一个类,把这两个类拷贝到你的IDE中,先后运行 IOServer.java 和IOClient.java可看到效果。下面是传统的IO编程中服务端实现IOServer.java/** * .

2020-09-08 16:59:19 163

原创 spring cloud gateway 过滤器篇

Gateway的Predict,Predict决定了请求由哪一个路由处理,在路由处理之前,需要经过“pre”类型的过滤器处理,处理返回响应之后,可以由“post”类型的过滤器处理。filter的作用和生命周期由filter工作流程点,可以知道filter有着非常重要的作用,在“pre”类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等,在“post”类型的过滤器中可以做响应内容、响应头的修改,日志的输出,流量监控等。首先需要弄清一点为什么需要网关这一层,这就不得不说下filter的

2020-09-08 15:28:29 373 1

原创 maven相关知识

一.dependencies与dependencyManagement区别1.dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)2.dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版...

2020-01-09 17:09:15 98

原创 Spring整合Quartz

1.添加maven依赖 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> </dependency> &lt...

2020-01-09 16:49:57 101

原创 Redis的安装和Redis运用,以及Redis工具类封装

redis安装部署一.安装1.首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载稳定版 redis-4.0.10.tar.gz2.使用WinSCP 上传到/root目录3.在/usr/local创...

2020-01-09 16:33:30 127

转载 centos7下使用yum源安装mysql5.7

1.现在centos上默认是没有yum源的,yum安装的是 MariaDB。所以我们需要自己先配置yum源。配置yum源步骤如下:(参考自风Boy)下载yum源:wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'image.png安装yum源rpm -Uvh mysql57-...

2019-12-07 11:12:20 267

原创 使用fastjson处理json数据

一.引入maven依赖 <dependency> <artifactId>fastjson</artifactId> <groupId>com.alibaba</groupId> <version>1.2.47</version&...

2019-11-29 14:31:36 166

原创 线性表

一.线性表(Linear List)的定义:线性表示具有相同数据类型的n(n>=0)个数据元素的有限序列,通常记为:(a1,a2,a3,...,ai-1,ai,ai+1,...,an)二线性表的基本操作:(1)InitList(L):初始化操作,置L为空线性表。(2)ClearList(L):清除线性表的内容,将L置为空表。(3)ListLength(L):求表长。(4)...

2019-11-29 13:57:12 92

原创 栈和队列

一.栈的(stack)定义:栈是一种仅允许在一段进行插入和删除运算的线性表。允许插入删除的叫栈顶,另一端叫栈底。二.栈的基本操作:(1)InitStack(S):构架一个空栈S。(2)ClearStack(S):清楚栈所有的元素。(3)StackEmpty(S):判断栈是否为空。为空返回true,否则false。(4)GetTop(S):获取栈顶元素,不移动指针。(5)Pu...

2019-11-29 13:56:53 71

原创 数据结构基本概念

一.数据(data):数据是信息的载体,是对客观事物的符号表示,能够被计算机识别,储存和加工处理。二.数据元素(data element):数据元素是数据中具有独特意义的个体,是数据的基本单位,通常,,,,,数据元素可以有若干数据项,数据项是不可分隔的最小单位。三.数据对象(data object):数据对象是性质相同的数据元素的集合,是数据的一个子集。如 N={0,+1 ,-1,+2,-...

2019-11-29 13:56:47 302

原创

一.串的定义:串(String)是字符串的简称,是由零或多个字符串组成的有限序列。一般记为:S="a1a2a3...an"(n>=0)(1)其中S是串名(2)用双引号括起来的是串的值。二.什么是子串,什么是主串,怎么比较两个子串相等,怎么计算一个窜的子串。(1)串中任意个连续字符组成的子序列称为改串的子串。(2)包含子串的串称为该子串的主串,(3)当且仅当两...

2019-11-29 13:56:26 157

原创 多维数组和广义表

一.数组定义: n维数组是n-1维数组的线性表。数组只有两种基本操作:读,写。二.数组的存储结构:(1)二维数组Amn以行为主的顺序映像中的存储地址为:Loc(i,j)=Loc(0,0)+(i*n+j)L;(2)二维数组Amn以列为主的顺序映像中的存储地址为:Loc(i,j)=Loc(0,0)+(j*n+i)L;(3) 三维数组Rpmn行为主的顺序映像中的存...

2019-11-29 13:56:15 191

原创 备忘录模式代码举例(java语言版)

前言:备忘录模式保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。优点:1、给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。 2、实现了信息的封装,使得用户不需要关心状态的保存细节。缺点:消耗资源。如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存。JAVA语言版备忘录模式创建储存类:public...

2019-04-30 17:13:11 890

原创 中介者模式代码举例(java语言版)

前言:中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。优点:1、降低了类的复杂度,将一对多转化成了一对一。 2、各个类之间的解耦。 3、符合迪米特原则。缺点:中介者会庞大,变得复杂难以维护。JAVA语言版中介者模式创建中介类与User类(这...

2019-04-30 16:47:28 510

原创 迭代器模式代码举例(java语言版)

前言:迭代器模式使数据与遍历相分离,提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。适用范围:1、访问一个聚合对象的内容而无须暴露它的内部表示。 2、需要为聚合对象提供多种遍历方式。 3、为遍历不同的聚合结构提供一个统一的接口。JAVA语言版迭代器模式创建迭代器接口:public interface Iterator { boolean hasNe...

2019-04-30 16:12:24 286

原创 解释器模式代码举例(java语言版)

前言:解释器模式的意图给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。优点:1、可扩展性比较好,灵活。 2、增加了新的解释表达式的方式。 3、易于实现简单文法。缺点:1、可利用场景比较少。 2、对于复杂的文法比较难维护。 3、解释器模式会引起类膨胀。 4、解释器模式采用递归调用方法。JAVA语言版解释器模式创建解释器接口:public in...

2019-04-29 17:12:55 616

原创 观察者模式代码举例(java语言版)

前言:当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。注意事项:1、JAVA 中已经有了对观察者模式的支持类。 2、避免循环引用。 3、如果顺序执行,某一观察者错误会导致系统卡壳,一般采用异步方式。JAVA语言版观察者模式创建观察者的抽象类:public abstract class Observer...

2019-04-29 16:17:03 3865

原创 命令模式代码举例(java语言版)

前言:命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。一般都会有三个角色:1、received 真正的命令执行对象 2、Command 3、invoker 使用命令对象的入口。这个设计模式是对操作方法的抽象。优点是对请求者"与"行为实现者"解耦JAVA语言版命令模式创建操作的抽象接口:public interface Order { vo...

2019-04-29 15:43:05 555

原创 责任链模式代码举例(java语言版)

前言:责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。JAVA语言版责任链模式创建日志的抽象类:​pu...

2019-04-29 11:39:07 394

java关于导入导出excel表

里面java利用POI是导入导出excel表的例子。 (注意:HSSF是POI工程对Excel 97(-2007)文件操作的纯Java实现 XSSF是POI工程对Excel 2007 OOXML (.xlsx)文件操作的纯Java实现 )

2018-06-06

空空如也

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

TA关注的人

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