3 李南_Mr_Li

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 15w+

linux 端口问题

Centos7开放及查看端口1、开放端口firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口firewall-cmd --reload # 配置立即生效2、查看防火墙所有开放的端口firewall-cmd --zone=public --list-port

2020-06-10 11:12:53

设计模式:8适配器模式

适配器模式适配器模式属于结构型模式,又叫包装模式定义:把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作在现有的系统中有新旧两个接口,由于新旧接口不兼容导致客户端调用出现问题,但是现有系统还需要使用旧的接口,所以这个接口不能重构,但是为了能够让客户端正常调用,我们就需要将新的接口转换成旧的接口,这种解决方式就是适配器模式模式类图角色:目标接口:Target,该角色把其他类转换为我们期望的接口被适配类:Adaptee,被期望改变的接口适配

2020-05-29 15:22:08

SQL优化之索引

索引是什么?数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,它可以对数据库表中一列或多列的值进行排序,以协助更加快速的访问数据库表中特定的数据。通俗的说,我们可以把数据库索引比做是一本书前面的目录,它能加快数据库的查询速度。为什么需要索引?思考:如何在一个图书馆中找到一本书?设想一下,假如在图书馆中没有其他辅助手段,只能一条道走到黑,一本书一本书的找,经过3个小时的连续查找,终于找到了你需要看的那本书,但此时天都黑了。为了避免这样的事情,每个图书馆才都配备了一套图书馆管理系统,大家要找

2020-05-29 10:35:56

SQL优化 随笔

1 基本概念简述1.1 逻辑架构第一层:客户端通过连接服务,将要执行的sql指令传输过来第二层:服务器解析并优化sql,生成最终的执行计划并执行第三层:存储引擎,负责数据的储存和提取1.2 锁数据库通过锁机制来解决并发场景-共享锁(读锁)和排他锁(写锁)。读锁是不阻塞的,多个客户端可以在同一时刻读取同一个资源。写锁是排他的,并且会阻塞其他的读锁和写锁。简单提下乐观锁和悲观锁。乐观锁,通常用于数据竞争不激烈的场景,多读少写,通过版本号和时间戳实现。悲观锁,通常用于数据竞争激烈的场景,每次

2020-05-29 10:16:17

设计模式:7.迭代器模式

迭代器模式迭代器模式属于行为型模式,描述的是类之间的关系定义: 它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节迭代器模式就是为解决遍历元素而诞生的,java而言,使用java提供的iterator就可以了,不用需要手动去写迭代器模式类图角色:抽象迭代器:Iterator,负责定义访问和遍历元素的接口具体迭代器:ConcreteIterator,实现Iterator接口抽象容器:Aggregate,负责提供创建具体迭代器角色的接口具体容器: ConcreteAgg

2020-05-27 11:24:39

设计模式6:建造者模式

建造者模式建造者模式属于创建型设计模式,用来组装复杂的实例定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节模式类图角色抽象建造者:Builder,目的是为了将建造的具体过程交给它的子类来实现。这样更容易扩展。一般至少会有两个抽象方法,一个用来建造产品,一个是用来返回产品具体的建造者: ConcreteBuilder,实现抽象建造者的所

2020-05-27 10:42:05

Linux常用命令

cd dir 更改目录到dirtail -f file 从后10行开始查看file的内容shutdown -g0 -y -i5 关机命令(i 是指运行级别,5是指在X86关闭计算机的运行级别 -g 是指在多少分以后关闭电脑 0 就是立刻关闭 -y 就是不进行任何提醒关闭计算机)shutdown -h now 立即关机shutdown -r now 立即重启cp -rf file1 file2将file1复制到file2 (-r 递归处理,指定目录下的文件和子目录一并处理;-f 强行复制,无论目标是

2020-05-27 10:17:21

设计模式:5.观察者模式(发布订阅)

观察者模式观察者模式属于行为型模式,又叫发布订阅模式定义:​ 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新模式类图角色:被观察者:Subject定义一个被观察者必须实现职责,包括动态增加,删除,通知观察者观察者:Observer接受到观察者修改消息,执行自身逻辑具体观察者:ConctreteSubject继承Subject,拥有自己的业务逻辑,具有被观察者基本功能,对某些事件进行通知具体的观察者:ConcreteObserver

2020-05-27 10:09:41

设计模式:4.代理模式

代理模式代理模式属于结构型模式定义:为其他对象提供一种代理以控制对这个对象的访问代理模式就是在操作原对象的时候,多出来一个代理类,用来对原对象的访问进行控制和替代原对象进行一些操作模式类图角色抽象接口:able,定义业务接口被代理类:Source代理类:Proxy,用来对原对象的访问进行控制和替代原对象进行一些操作客户端:Client,负责调用代理类优点职责清晰,被代理类只关心实际的业务逻辑,不关心其他事情高扩展性,被代理类可以随意更改,不会影响到代理类对其的访问控制抽象

2020-05-26 17:51:49

设计模式:3.抽象工厂

抽象工厂抽象工厂模式属于创建型模式定义:为创建一组相关或相互依赖的对象提供一个接口,而且无须指定它们的具体类抽象工厂模式是对工厂方法模式的扩展,抽象工厂比工厂模式更为抽象,工厂方法模式针对产品等级结构,而抽象工厂针对产品族。产品族与产品等级结构的概念:​ 产品族,是指位于不同产品等级结构中,功能相关联的产品组成的家族,比如游戏工厂生产射击类和塔防类两种产品,任天堂的射击类游戏和塔防类游戏为一个产品族,腾讯的射击类游戏和塔防类游戏为一个产品族​ 产品等级结构,一个产品族由多个产品等级结构组成,射击

2020-05-26 17:35:30

设计模式:2.工厂模式

工厂方法模式工厂模式属于创建型设计模式定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类工厂方法模式是new一个对象的替代品,所以在所有需要生成对象的地方都可以使用,但如果随意增加工厂类会增加代码的复杂度,也不易维护角色抽象产品:Product抽象产品定义具体产品类:ConcreteProduct实现Product接口抽象工厂:Creatot抽象工厂定义具体工厂类:ConcreteCreator实现Creatot接口优点:解耦:调用方不用

2020-05-26 16:31:55

设计模式:1.单例模式

什么是单例模式单例模式目的是保证在程序运行期间一个类只有一个实例,并提供一个全局访问点,无论什么情况下,只会生成一个实例,免去繁琐的创建销毁对象的过程。如何设计单例如何设计单例模式其实很简单,只需要考虑一个问题,实例是否可以保证是全局唯一,只要满足这个条件,这个单例设计的肯定就合格了。其中懒汉模式,饿汉模式,双重检查方式实现,静态内部类的实现方式都可以概括为以下两步:构造函数私有化,保证在外部无法new对象提供一个static方法获取当前实例(不同方案,实现不同)当然枚举的实现方式最简单,也最

2020-05-26 16:13:44

redis 笔记

1、什么是Redis?它的优缺点?Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redi

2020-05-26 10:33:43

MyCat

Mycat 背后是阿里曾经开源的知名产品——Cobar。Cobar 的核心功能和优势是 MySQL 数据库分片,此产品曾经广为流传,据说最早的发起者对 Mysql 很精通,后来从阿里跳槽了,阿里随后开源的 Cobar,并维持到 2013 年年初,然后,就没有然后了。Cobar 的思路和实现路径的确不错。基于 Java 开发的,实现了 MySQL 公开的二进制传输协议,巧妙地将自己伪装成一个 MySQL Server,目前市面上绝大多数 MySQL 客户端工具和应用都能兼容。比自己实现一个新的数据库协议要明

2020-05-25 17:40:40

Nginx

Nginx安装第一步:把 nginx 的源码包nginx-1.8.0.tar.gz上传到 linux 系统Alt+p 启动sftp ,将nginx-1.8.0.tar.gz上传第二步:解压缩tar zxvf nginx-1.8.0.tar.gz第三步:进入nginx-1.8.0目录 使用 configure 命令创建一 makeFile 文件。./configure \--prefix=/usr/local/nginx \--pid-path=/var/run/nginx/ngin

2020-05-25 16:51:02

Docker容器部署

1.Docker简介1.1虚拟化1.1.1什么是虚拟化在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,

2020-05-25 16:18:22

Java线程同步实现二:Lock锁和Condition

一.同步锁我们还是用同步锁来实现存取款的例子:package com.chanshuyi.thread;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ThreadDemo93 { public static void main(String[] args) { Account account = new Accoun

2020-05-12 16:05:14

Java线程同步实现一:synchronzied和wait()/notify()

1、一个典型的Java线程安全例子package com.chanshuyi.thread;public class ThreadDemo93 { public static void main(String[] args) { Account account = new Account(2300); new DrawMoneyThread(account).start(); new DepositeThread(account).start(

2020-05-12 16:02:15

Java并发编程:线程控制

在上一篇文章中(Java并发编程:线程的基本状态)我们介绍了线程状态的 5 种基本状态以及线程的声明周期。这篇文章将深入讲解Java如何对线程进行状态控制,比如:如何将一个线程从一个状态转到另一个状态,如何设置线程的优先级等。一、join() 等待阻塞让一个线程等待另一个线程完成才继续执行。如A线程线程执行体中调用B线程的join()方法,则A线程被阻塞,知道B线程执行完为止,A才能得以继续执行。package com.chanshuyi.thread;public class ThreadDe

2020-05-12 15:58:34

Java多线程:线程的几种基本状态

一、线程的基本状态线程基本上有5种状态,分别是:NEW、Runnable、Running、Blocked、Dead。1)新建状态(New)当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread();2)就绪状态(Runnable)当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,并不是说执行了t.start()此线程立即就会执行;3)运行状态(Running)

2020-05-12 11:29:06

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。