懒猫的脚印

走过路,就会留下痕迹

自定义博客皮肤

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NFA转DFA及最优化

《正则表达式转NFA》NFA是捏着正则式去比文本,吃掉一个字符,就把它跟正则式比较,匹配就记下来:“某年某月某日在某处匹配上了!”,然后接着往下干。一旦不匹配,就把刚吃的这个字符吐出来,一个个的吐,直到回到上一次匹配的地方。 而DFA捏着文本串去比较正则式,看到一个子正则式,就把可能的匹配串全标...

2019-09-18 15:01:51

阅读数 9

评论数 0

正则表达式转NFA

正则表达式的基本运算 正则表达式有三种基本的运算: 连接(Concatenation), 例如 abc, 由a, b, c组成 联合(Union), 例如 a|b|c, 表示a或者b或者c Kleene闭包(Kleene *), 例如 (ab)*, 表示ab串不出现,或者出现1次或一次以上...

2019-09-11 17:43:29

阅读数 11

评论数 0

逆波兰表达式&后缀表达式

概念 前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前。比如:- × + 3 4 5 6 中缀表达式就是常见的运算表达式,如(3+4)×5-6 后缀表达式又称逆波兰表达式,与前缀表达式相似,只是运算符位于操作数之后,比如:3 4 + 5 × 6 - 人类最熟悉的一种表达式1+2,(1+...

2019-09-11 10:01:14

阅读数 10

评论数 0

dubbo概述

在大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。 (1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。 此时需要一个服务注册中心,动态的注册和...

2019-08-05 17:37:42

阅读数 12

评论数 0

spring boot启动流程

我们开发任何一个Spring Boot项目,都会用到如下的启动类 @SpringBootApplication public class App { public static void main( String[] args ) { SpringApplicatio...

2019-07-29 14:24:07

阅读数 18

评论数 0

Spring @ComponentScan注解 —— 自动扫描组件

@ComponentScan主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中. @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) @Documented //可以多个Compon...

2019-07-29 10:19:00

阅读数 9

评论数 0

Spring @Import注解 —— 导入资源

@Import【class】有三种成法: @Import(要导入到容器中的组件);容器中就会自动注册这个组件,id默认是全类名 ImportSelector:返回需要导入的组件的全类名数组; ImportBeanDefinitionRegistrar:手动注册bean到容器中 1.导入普通c...

2019-07-26 10:25:20

阅读数 13

评论数 0

spring容器扩展分析

spring引入了context包用于扩展beanFactory的功能。 ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml"); AdminUser user = (Admin...

2019-07-25 10:14:24

阅读数 20

评论数 0

spring核心容器分析

下面是spring容器的启动代码 //引用配置文件 Resource resource = new ClassPathResource("spring.xml"); //创建bean工厂 DefaultListableBeanFactory factory = new De...

2019-07-24 16:53:59

阅读数 6

评论数 0

rocketmq概述

消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。主要具有以下优势: 削峰填谷(主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题) 系统解耦(解决不同重要程度、不同能力级别系统之间依赖导致一死全死) 提升性能(当存在一对多调用时,可以发一条消息...

2019-07-15 14:27:53

阅读数 10

评论数 0

redis概述

Redis 是互联网技术领域使用最为广泛的存储中间件,它是「Remote Dictionary Service」的首字母缩写,也就是「远程字典服务」。Redis 以其超高的性能、完美的文档、 简洁易懂的源码和丰富的客户端库支持在开源中间件领域广受好评。 1.数据库的结构 Redis 中的每...

2019-07-10 15:23:40

阅读数 5

评论数 0

mysql事务

事务(Transaction)是数据库区别于文件系统的重要特性之一。 数据库引入事务的主要目的:事务会把数据库从一种抑制状态转换为另一种一致状态。在数据库提交工作时,要么所有修改都已经保存了,要么所有修改都不保存。 InnoDB中的事务完全符合ACID的特性 A(atomicity),原子性是...

2019-06-27 17:40:08

阅读数 38

评论数 0

mysql锁机制

InnoDB中的事务完全符合ACID特性《mysql事务》。 原子性(atomicity) 一致性(consistency) 隔离性(isolation) 持久性(durability) 其中 一致性,隔离性基本上与锁密切相关。 事务的四种隔离级别 READ UNCOMMITTED...

2019-06-26 11:51:43

阅读数 34

评论数 0

InnoDB存储引擎索引概述

InnoDB 存储引擎索引B+树 B+树和二叉树、平衡二叉树一样,都是经典的数据结构《B,B+树》。 B+树索引其本质就是B+树在数据库中的实现,但是B+索引在数据库中有一个特点就是其高扇出性,因此在数据库中,B+树的高度一般都在2~3层,也就是对于查找某一键值的行记录,最多只需要2到...

2019-06-02 22:37:59

阅读数 7

评论数 0

InnoDB存储结构

物理存储结构 从物理意义上来看,InnoDB表由共享表空间、日志文件组(更准确地说,应该是Redo文件组)、表结构定义文件组成。若将innodb_file_per_table设置为on,则每个表将独立地产生一个表空间文件,以ibd结尾,数据、索引、表的内部数据字典信息都将保存在这个单独的表空间文...

2019-05-26 23:16:13

阅读数 27

评论数 0

Mysql结构简介

1.数据库切分概述 在互联网时代,海量数据的存储与访问成为系统设计与使用的瓶颈问题,对于海量数据处理,按照使用场 景,主要分为两种类型:联机事务处理(OLTP)和联机分析处理(OLAP)。 联机事务处理(OLTP)也称为面向交易的处理系统,其基本特征是原始数据可以立即传送到计算中心进行处理...

2019-05-26 15:29:20

阅读数 17

评论数 0

赫拉(hera)分布式任务调度系统

相关介绍 赫拉(hera)分布式任务调度系统之架构,基本功能(一) 赫拉(hera)分布式任务调度系统之项目启动(二) 赫拉(hera)分布式任务调度系统之开发中心(三) 赫拉(hera)分布式任务调度系统之版本(四) 赫拉(hera)分布式任务调度系统之Q&A(五) ...

2019-05-22 09:44:52

阅读数 102

评论数 0

APP服务端组件下布架构演化

传统APP与服务端交互架构 服务器只负责返回简单的数据 APP端对服务端提供的数据进行加工(复杂),例,可能根据2,3字段来判断一个控件是否显示 把加工的数据和布局好的控件进行渲染 服务端: 负责把业务逻辑数据提供出来 客户端: 对数据加工,渲染出想要的界面 缺点: ...

2019-04-29 11:06:57

阅读数 44

评论数 0

Window Select 源码分享

《网络概述》与 《网络IO模型》 二文中介绍了,NIO与Select模型的概念。接下来看看open jdk中select模型怎么实现的。 JAVA NIO 例子 上图是现在最常见的NIO写法 ServerSocketChannel.open() 打开一个连接 serverChannel...

2019-04-09 22:29:10

阅读数 53

评论数 0

网络IO模型

同步、异步、阻塞、非阻塞 同步与异步:描述的是用户线程与内核的交互方式,同步指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行;而异步是指用户线程发起IO请求后仍然继续执行,当内核IO操作完成后会通知用户线程,或者调用用户线程注册的回调函数。 阻塞与非阻塞:描述是用户线程调...

2019-04-07 22:41:38

阅读数 9

评论数 0

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