- 图解 Kafka 网络层源码实现机制之收发消息全过程
炫酷盖茨猫先生
后端kafkajava大数据分布式数据库
针对JavaNIO的SocketChannel,kafka是如何封装统一的传输层来实现最基础的网络连接以及读写操作的?剖析KafkaChannel是如何对传输层、读写buffer操作进行封装的?剖析工业级NIO实战:如何基于位运算来控制事件的监听以及拆包、粘包是如何实现的?剖析Kafka是如何封装Selector多路复用器的?剖析Kafka封装的Selector是如何初始化并与Broker进行连接
- netty核心功能与线程模型
bijian-bijian
java开发语言
Netty初探NIO的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。开发工作量和难度都非常大:例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异常流的处理等等。Netty对JDK自带的NIO的API进行了良好的封装,解决了上述问题。且Netty拥有高性能、吞吐量更高,延迟更低,减
- NIO Buffer
一一|一一一亅
nio
网络IO所有Socket通道都继承了AbstractSelectableChannel,意味着用一个Selector对象来执行socket通道的就绪选择。1.1SocketChannel与ServerSocketChannelSocketChannel定义读和写功能的接口,而ServerSocketChannel不实现。ServerSocketChannel负责监听传入的连接和创建新的S哦创可贴C
- 初识Netty
盼来一朵云
javanio
初识Netty概述为什么要使用Netty我们在使⽤NIO做同步⾮阻塞式的⽹络通信时,会发现NIO实现起来⾮常复杂。整个NIO的过程包含着繁琐的步骤,且需要同时掌握好各种API的使⽤,⽐如Selector、ServerSocketChannel、SocketChannel及ByteBuffer等。从之前的几篇关于NIO的文章可以看出,还没有实现业务,光写整个流程就⾮常繁琐。NIO除了实现起来复杂之外
- Netty入门使用
我就是胖着玩玩的
后端
为什么会有Netty?NIO的类库和API繁杂,使用起来比较麻烦,需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。开发工作量和难度都非常大,例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异常流的处理等。Netty对JDK自带的NIO的API进行了良好的封装,解决了上述问题。此外,Netty拥有高性能、吞吐量
- Java-NIO篇章(3)——Channel通道类详解
矩阵科学
技术提升篇nioNIOChannelChannelNIO通道JavaNIO通道
JavaNIO中,一个socket连接使用一个Channel(通道)来表示。对应到不同的网络传输协议类型,在Java中都有不同的NIOChannel(通道)相对应。其中最为重要的四种Channel(通道)实现:FileChannel、SocketChannel、ServerSocketChannel、DatagramChannel:FileChannel文件通道,用于文件的数据读写;(管文件的传输
- Java进阶(2)——NIO之网络IO、Netty、RPC
ICoder_Next
Java基础web进阶
文章目录1.网络IO1.1概述和核心API1.Selector(选择器)2.SelectionKey3.ServerSocketChannel4.SocketChannel1.2入门案例1.3网络聊天案例1.4AIO编程1.5IO对比总结2.Netty2.1概述2.2Netty整体设计2.2.1线程模型1.单线程模型2.线程池模型3.Netty模型2.2.2异步模型2.3核心API1.Channe
- Netty初探:掌握高性能网络通信框架,提升Java网络编程技能
光芒软件工匠
java网络开发语言netty
Netty初探NIO的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。开发工作量和难度都非常大:例如客户端面临断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异常流的处理等等。Netty对JDK自带的NIO的API进行了良好的封装,解决了上述问题。且Netty拥有高性能、吞吐量更高,延迟更低,减
- java--NIO详解--Buffer、channel与网络编程
运维小菜
javabufferniojava
目录一、buffer--缓冲区的基本使用1.核心与基础用法2.实现字符集转换二、Channel的基本使用三、socketChannel网络编程--阻塞式四、socketChannel网络编程--非阻塞式1.Client客户端类2.Server服务端一、buffer–缓冲区的基本使用1.核心与基础用法初始化缓冲区:XXXBuffer.allocate(intcapacity)数据加入缓冲区:buff
- Java NIO-8.SocketChannel
悠扬前奏
JavaNIOSocketChannel是一个连接到TCP网络套接字的通道,它等同于Java网络套接字。有两种方式创建SocketChannel:打开SocketChannel然后连接到互联网上的服务器。一个新的连接到达ServerSocketChannel时,会创建一个SocketChannel打开SocketChannel下面是打开SocketChannel的例子:SocketChannels
- 第4章 Netty 第一节概述
--believe
Nettynio
1.原生NIO存在的问题NIO的类库和API繁杂,使用麻烦。需要熟练掌握Selector,ServerSocketChannel,SocketChannel,ByteBuffer等。开发工作量和难度都非常大:例如客户端面临断连重连、网络闪断、半包读写、失败缓存、网络拥塞和异常流的处理等等。2.Netty官方说明Netty是由JBOSS提供的一个Java开源框架,Netty提供异步的,基于事件驱动的
- java开发RtspClient
安静的做,安静的学
协议协议
java开发RtspClientsocketchanel建立if(selector==null){//创建新的Selectortry{selector=Selector.open();}catch(finalIOExceptione){e.printStackTrace();}}try{//打开通道socketChannel=SocketChannel.open();//绑定到本地端口socket
- NIO网络编程
yzhSWJ
nio网络
Netty学习之NIO基础-Nyima'sBlog1、阻塞阻塞模式下,相关方法都会导致线程暂停ServerSocketChannel.accept会在没有连接建立时让线程暂停SocketChannel.read会在通道中没有数据可读时让线程暂停阻塞的表现其实就是线程暂停了,暂停期间不会占用cpu,但线程相当于闲置单线程下,阻塞方法之间相互影响,几乎不能正常工作,需要多线程支持但多线程下,有新的问题
- Netty学习笔记
只因我实在是太美
学习笔记java
1.NIO基础non-blockingio,jdk1.4后新增1.1三大组件1.1.1Channel读写数据的双向通道,可以用channel将数据从buffer中读出,也可以将buffer的数据写入channel,而java的Stream流要么输入要么输出,常用的Channel有SocketChannel、ServerSocketChannel、FileChannel1.1.2BufferBuff
- Java socket详解
Firm陈
JavaSEjavaudp网络
整理和总结了一下经常遇到的问题:1.客户端socket发送消息后,为什么服务端socket没有收到?2.使用while循环实现连续输入,是不是就是多线程模式?3.对多线程处理机制不是很明白,希望详细讲解?4.希望详细讲解ServerSocketChannel和SocketChannel与ServerSoket和Socket的区别?5.希望有详细的例子,可以直接拷贝下来运行?一:socket通信基本
- Socket 通信原理
程序员plus
Java编程语言学习程序员Socket通信Java
整理和总结了一下大家常遇到的问题:1.客户端socket发送消息后,为什么服务端socket没有收到?2.使用while循环实现连续输入,是不是就是多线程模式?3.对多线程处理机制不是很明白,希望详细讲解?4.希望详细讲解ServerSocketChannel和SocketChannel与ServerSoket和Socket的区别?5.希望有详细的例子,可以直接拷贝下来运行?针对童鞋们提出的问题,
- 常见面试题-Netty线程模型以及TCP粘包拆包
无敌少年小旋风
面试题tcp/ip网络协议网络
介绍一下Netty使用的线程模型?答:Netty主要基于主从Reactor多线程模型,其中主从Reactor多线程模型将Reactor分为两部分:mainReactor:监听ServerSocket,用来处理网络IO连接建立操作,将建立的SocketChannel指定注册给subReactorsubReactor:和建立起来的socket做数据交互和业务处理操作因为客户端的连接数量相对来说比较少,
- 关于 Java NIO 的 Selector 的事儿,这篇文章里面全都有
大明哥_
#死磕NIO死磕NIO
前面4篇文章深入分析了NIO三大组件中的两个:Buffer和Channel:【死磕NIO】—深入分析Buffer【死磕NIO】—深入分析Channel和FileChannel【死磕NIO】—跨进程文件锁:FileLock【死磕NIO】—探索SocketChannel的核心原理这篇文章则介绍第三个组件:Selector。相比Buffer和Channel而言,Selector对于NIO来说显得更加重要
- Netty快速入门与Reactor模式
JolyouLu
JAVA网络编程nettyEventLoopGroupChannelHandlerChannelTaskQueue
Netty概述原生NIO存在的问题NIO的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等需要具备其它的额外技能:要熟悉java多线程,因为NIO编程涉及到Rector模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的NIO程序开发工作量和难度非常大:例如客户端面临断连重连接,网络闪断,半包
- 【Java NIO】之 Channel
王廷云的博客
Javajavanio
下面以一个实例介绍Channel的各种用法/***一、通道(Channel):用于源节点与目标节点的连接。在JavaNIO中负责缓冲区中数据的传输。*Channel本身不存储数据,因此需要配合缓冲区进行传输。**二、通道的主要实现类*java.nio.channels.Channel接口:*|--FileChannel*|--SocketChannel*|--ServerSocketChannel
- Netty学习笔记(四)Netty概述及传统阻塞 IO 、Reactor 模式线程模型
yangwen-bo
后端开发nettyjava多线程
原生NIO存在的问题1.NIO的类库和API繁杂,使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。2.需要具备其他的额外技能:要熟悉Java多线程编程,因为NIO编程涉及到Reactor模式,你必须对多线程和网络编程非常熟悉,才能编写出高质量的NIO程序。3.开发工作量和难度都非常大:例如客户端面临断连重连、网络闪
- Netty组件Channel介绍
oneMonthOneBook
netty网络java服务器
一、概述1.1概念Channel是客户端和服务端建立的一个连接通道,是Netty抽象出来的网络I/O读写相关的接口。客户端有一个Channel(SocketChannel),服务端也有一个Channel(NioSocketChannel),当客户端和服务端建立连接后,客户端的Channel会跟服务端的Channel进行联通。1.2Channel生命周期Channel的四个状态:状态描述channe
- Netty简单实现TCP代理,实例为MYSQL代理
我来秋风扫落叶
javajava
importio.netty.bootstrap.Bootstrap;importio.netty.bootstrap.ServerBootstrap;importio.netty.channel.*;importio.netty.channel.nio.NioEventLoopGroup;importio.netty.channel.socket.SocketChannel;importio.n
- Channel详解
沧浪之水12010137
一:什么是channel通俗理解就是一个接口,publicinterfaceChannelextendsCloseable{},用于文件的数据读写。FileChannel用于文件的数据读写,DatagramChannel用于UDP的数据读写,ServerSocketChannel和SocketChannel用于TCP的数据读写。二:channel与流的区别NIO的通道类似于流,但有些区别如下:通道
- 图解 Kafka 网络层实现机制之Selector 多路复用器
JavaMonsterr
程序员Java计算机kafkajava大数据
01总体概述大家都知道在JavaNIO有个三剑客,即「SocketChannel通道」、「Buffer读写」、「Selector多路复用器」,上篇已经讲解了前2个角色,今天我们来聊聊最后一个重要的角色。KafkaSelector是对JavaNIOSelector的二次封装,主要功能如下:提供网络连接以及读写操作对准备好的事件进行收集并进行网络操作为了方便大家理解,所有的源码只保留骨干。02Sele
- 使用Channel(通道)使客户端和服务器通话:
777777-smail
笔记
SocketChannel和ServerSocketChannel的实现通信客户端:publicclassTest08{publicstaticvoidmain(String[]args)throwsIOException{//1.创建SocketChannelSocketChannelsocketChannel=SocketChannel.open();//2.去连接服务器booleanb=so
- 史上最强 NIO 框架,没有之一!!!
架构师小秘圈
nionettyepollaof面试
JDK从1.4版本引入NIO的类库,但是其设计有点反人类,使用较为麻烦,需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等很多类库的使用。在用NIO类库开发网络程序时还面临大量复杂问题需要解决,例如客户端断线重连、网络闪断、心跳处理、半包读写、网络拥塞和异常流的处理等等。Netty作为现在最流行的网络通信框架,对JDK自带的NI
- 辛星2018年nio教程第七篇:SocketChannel与ServerSocketChannel
辛星0913
先打个小广告,关注辛星教程,我的微信号xinxing0913,该项目源码所在的github地址:https://github.com/xinxing0913/xinxing-nio-guide。前面我们介绍的操作都是对于本地文件的操作,接下来我们就要进行网络相关的操作了。这里我们经常使用的两个Channel是SocketChannel与ServerSocketChannel。SocketChann
- NIO三大组件
半桶水的码农
网络编程篇nettyniosocketjava
目录一、Buffer缓冲区二、Channel通道1.Channel和Stream的区别2.Socketchannel3.ServerSocketChannel三、Selector选择器四、NIO三大件的工作流程提到NIO网络编程,就不得不提一下NIO中的三大组件:Buffer、Channel、Selector,JDK源码开发者在这里用了很通用形象的三个词语,去分别赋予三个类的抽象含义,Buffer
- Java NIO三大核心组件
得过且过的勇者y
javajavanio
文章目录一、Buffer1、重要属性2、重要方法1)allocate()创建缓冲区2)put()写入到缓冲区3)flip()翻转4)get()从缓冲区读取5)rewind()倒带6)mark()和reset()7)clear()清空缓冲区8)使用Buffer类的基本步骤二、Channel1、FileChannel文件通道2、SocketChannel套接字通道3、DatagramChannel数据
- java数字签名三种方式
知了ing
javajdk
以下3钟数字签名都是基于jdk7的
1,RSA
String password="test";
// 1.初始化密钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(51
- Hibernate学习笔记
caoyong
Hibernate
1>、Hibernate是数据访问层框架,是一个ORM(Object Relation Mapping)框架,作者为:Gavin King
2>、搭建Hibernate的开发环境
a>、添加jar包:
aa>、hibernatte开发包中/lib/required/所
- 设计模式之装饰器模式Decorator(结构型)
漂泊一剑客
Decorator
1. 概述
若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。
- 读取磁盘文件txt,并输入String
一炮送你回车库
String
public static void main(String[] args) throws IOException {
String fileContent = readFileContent("d:/aaa.txt");
System.out.println(fileContent);
- js三级联动下拉框
3213213333332132
三级联动
//三级联动
省/直辖市<select id="province"></select>
市/省直辖<select id="city"></select>
县/区 <select id="area"></select>
- erlang之parse_transform编译选项的应用
616050468
parse_transform游戏服务器属性同步abstract_code
最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少
- JAVA JSON的解析
darkranger
java
// {
// “Total”:“条数”,
// Code: 1,
//
// “PaymentItems”:[
// {
// “PaymentItemID”:”支款单ID”,
// “PaymentCode”:”支款单编号”,
// “PaymentTime”:”支款日期”,
// ”ContractNo”:”合同号”,
//
- POJ-1273-Drainage Ditches
aijuans
ACM_POJ
POJ-1273-Drainage Ditches
http://poj.org/problem?id=1273
基本的最大流,按LRJ的白书写的
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
#define INF 0x7fffffff
int ma
- 工作流Activiti5表的命名及含义
atongyeye
工作流Activiti
activiti5 - http://activiti.org/designer/update在线插件安装
activiti5一共23张表
Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
A
- android的广播机制和广播的简单使用
百合不是茶
android广播机制广播的注册
Android广播机制简介 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应
- Spring事务传播行为详解
bijian1013
javaspring事务传播行为
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这
- eidtplus operate
征客丶
eidtplus
开启列模式: Alt+C 鼠标选择 OR Alt+鼠标左键拖动
列模式替换或复制内容(多行):
右键-->格式-->填充所选内容-->选择相应操作
OR
Ctrl+Shift+V(复制多行数据,必须行数一致)
-------------------------------------------------------
- 【Kafka一】Kafka入门
bit1129
kafka
这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧
下载Kafka
http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz
2.10表示Scala的版本,而0.8.1.1表示Kafka
- Spring 事务实现机制
BlueSkator
spring代理事务
Spring是以代理的方式实现对事务的管理。我们在Action中所使用的Service对象,其实是代理对象的实例,并不是我们所写的Service对象实例。既然是两个不同的对象,那为什么我们在Action中可以象使用Service对象一样的使用代理对象呢?为了说明问题,假设有个Service类叫AService,它的Spring事务代理类为AProxyService,AService实现了一个接口
- bootstrap源码学习与示例:bootstrap-dropdown(转帖)
BreakingBad
bootstrapdropdown
bootstrap-dropdown组件是个烂东西,我读后的整体感觉。
一个下拉开菜单的设计:
<ul class="nav pull-right">
<li id="fat-menu" class="dropdown">
- 读《研磨设计模式》-代码笔记-中介者模式-Mediator
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。
* 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
*
* 在我看来,Mediator模式是把多个对象(
- 常用代码记录
chenjunt3
UIExcelJ#
1、单据设置某行或某字段不能修改
//i是行号,"cash"是字段名称
getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false);
//取得单据表体所有项用以上语句做循环就能设置整行了
getBillC
- 搜索引擎与工作流引擎
comsci
算法工作搜索引擎网络应用
最近在公司做和搜索有关的工作,(只是简单的应用开源工具集成到自己的产品中)工作流系统的进一步设计暂时放在一边了,偶然看到谷歌的研究员吴军写的数学之美系列中的搜索引擎与图论这篇文章中的介绍,我发现这样一个关系(仅仅是猜想)
-----搜索引擎和流程引擎的基础--都是图论,至少像在我在JWFD中引擎算法中用到的是自定义的广度优先
- oracle Health Monitor
daizj
oracleHealth Monitor
About Health Monitor
Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database.
About Health Monitor Checks
Health M
- JSON字符串转换为对象
dieslrae
javajson
作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了.
- C语言学习八结构体,综合应用,学生管理系统
dcj3sjt126com
C语言
实现功能的代码:
# include <stdio.h>
# include <malloc.h>
struct Student
{
int age;
float score;
char name[100];
};
int main(void)
{
int len;
struct Student * pArr;
int i,
- vagrant学习笔记
dcj3sjt126com
vagrant
想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant
1. vagrant virtualbox 下载安装
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/wiki/Downloads
查看安装在命令行输入vagrant
2.
- 14.性能优化-优化-软件配置优化
frank1234
软件配置性能优化
1.Tomcat线程池
修改tomcat的server.xml文件:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1200" m
- 一个不错的shell 脚本教程 入门级
HarborChung
linuxshell
一个不错的shell 脚本教程 入门级
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样
- Spring4新特性——核心容器的其他改进
jinnianshilongnian
spring动态代理spring4依赖注入
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
- Linux设置tomcat开机启动
liuxingguome
tomcatlinux开机自启动
执行命令sudo gedit /etc/init.d/tomcat6
然后把以下英文部分复制过去。(注意第一句#!/bin/sh如果不写,就不是一个shell文件。然后将对应的jdk和tomcat换成你自己的目录就行了。
#!/bin/bash
#
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
- 第13章 Ajax进阶(下)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Troubleshooting Crystal Reports off BW
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Troubleshooting+Crystal+Reports+off+BW#TroubleshootingCrystalReportsoffBW-TracingBOE
Quite useful, especially this part:
SAP BW connectivity
For t
- Java开发熟手该当心的11个错误
tomcat_oracle
javajvm多线程单元测试
#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为
- 正则表达式大全
yang852220741
html编程正则表达式
今天向大家分享正则表达式大全,它可以大提高你的工作效率
正则表达式也可以被当作是一门语言,当你学习一门新的编程语言的时候,他们是一个小的子语言。初看时觉得它没有任何的意义,但是很多时候,你不得不阅读一些教程,或文章来理解这些简单的描述模式。
一、校验数字的表达式
数字:^[0-9]*$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$