优先级

从零开始学正则(五)

白昼怎懂夜的黑 提交于 2020-03-01 23:08:00
壹 ❀ 引 我在 从零开始学正则(四) 一文中讲述了正则匹配的回溯法,以正则匹配过程引出了正则书写也会存在性能问题,并阐述了贪婪匹配,惰性匹配以及分支匹配时与回溯的中中关系。当然,对于初学者而言除了能写出正则以外,能读懂任意一段正则也是非常重要的。那么本篇文章主要针对正则表达式拆分展开分析,相信大家在阅读之后再面对各种变态长度的正则时,都能有理可据,化繁为简的拆分理解。 说在前面,正则学习系列文章均为我阅读 老姚《JavaScript正则迷你书》 的读书笔记,文中所有正则图解均使用 regulex 制作。那么本文开始! 贰 ❀ 正则的解构与操作符 编程语言一般都有操作符( 百科 ),但只要说到操作符就不得不讨论操作符的优先级,因为一堆操作符在一起,系统自己也得知道谁该先执行,谁要后执行。 那么正则中的操作符是什么呢?正则中的操作符体现在正则结构中,而结构又由特殊字符与普通字符构成。 JavaScript中的正则结构大致有这些: 字符字面量、字符组、量词、锚、分组、分支、反向引用 。也就是前几章节讲过的知识点, 我们简单复习一遍: 字符字面量: 当我们具体匹配某个字符时所写的正则字段,比如a匹配字段“a”,123匹配字段“123”,\. 匹配小数点等。 字符组: 当某个位置的字符可能是多种情况之一时,比如匹配任意一个数字,可以使用字符组[0-9],可简写为\d。除此之外还有反义字符组

idea工具java日志 Log4j+slf4j使用

元气小坏坏 提交于 2020-03-01 03:33:24
参考博文: http://www.blogjava.net/zzzlyr/articles/353039.html 这几天一直在用logger记录日志,但一直不明白log4j.properties配置文件意思,下面看看其他博主文章给自己充充电。 本人认为日志记录不仅可以帮记录执行结果,看代码执行是否正常,并且在排查问题时也能很快帮助你定位有问题代码。 一、介绍 Log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Log4j由三个重要的组件构成: loggers: 负责捕获记录信息, 日志信息的优先级 。 appenders : 负责发布日志信息, 日志信息的输出目的地 。 layouts: 负责格式化不同风格的日志信息, 日志信息的输出格式 。 从源码角度深入分析log4j配置文件使用: http://www.cnblogs.com/davidwang456/p/4243161.html 注意: 1、日记记录的优先级(低到高) : # 控制台显示的内容是

Java基础(九)

给你一囗甜甜゛ 提交于 2020-02-29 18:09:58
一、总述 多线程程序在较低的层次上扩展了多任务的概念:一个程序同时执行多个任务。通常,每一个任务称为一个线程,它是线程控制的简称。可以同时运行一个以上线程的程序称为多线程程序。 多进程与多线程的区别:每个进程拥有自己的一整套变量,而线程则共享数据。 二、中断线程 interrupt方法可以用来请求终止线程。当对一个线程调用interrupt方法时,线程的中断状态将被置位。这是每一个线程都具有的boolean标志。 三、线程状态 线程可以有如下六种状态:(要确定一个线程的当前状态,可调用getState方法) 1、New(新创建):当一个线程处于新创建状态时,程序还没有开始运行线程中的代码。 2、Runnable(可运行):在任何给定时刻,一个可运行的线程可能正在运行也可能没有运行。 3、Blocked(被阻塞):当一个线程试图获取一个内部的对象锁,而该锁被其他线程持有,则该线程进入阻塞状态。当所有其他线程释放该锁,并且线程调度器允许本线程持有它的时候,则该线程将变成非阻塞状态。 4、Waiting(等待):当线程等待另一个线程通知调度器一个条件时,它自己进入等待状态。 5、Timed Waiteing(计时等待):有几个方法有一个超时参数。调用它们导致线程进入计时等待状态。这一状态将一直保持到超时期满或者接收到适当的通知。 6、Terminated(被终止):线程被终止的原因有两个

241.为运算表达式设计优先级(LeetCode)

随声附和 提交于 2020-02-29 16:54:18
241.为运算表达式设计优先级(LeetCode) 一、问题描述   给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。 示例 1: 输入: "2-1-1" 输出: [0, 2] 解释: ((2-1)-1) = 0 (2-(1-1)) = 2 示例 2: 输入: "2*3-4*5" 输出: [-34, -14, -10, -10, 10] 解释: (2*(3-(4*5))) = -34 ((2*3)-(4*5)) = -14 ((2*(3-4))*5) = -10 (2*((3-4)*5)) = -10 (((2*3)-4)*5) = 10 二、问题解析    分治法 是基于多项分支递归的一种很重要的算法范式。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同的或相似的子问题,知道最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 分治算法三步走 : 分解:按运算符分成左右两部分,分别求解 解决:实现一个递归函数,输入算式,返回算式解 合并:根据运算符合并左右两部分的解,得出最终解   该题采用分治法,将字符串按运算符进行拆分为左右子字符串,左右子字符串类推拆分,直至字符串内没有运算符,将数字作为结果返回。将返回的结果集按照运算符进行合并

路由交换技术——OSPF

隐身守侯 提交于 2020-02-29 12:16:21
The Open Shortest Path First 开放式最短路径优先 1.RIP是依靠距离向量的内部路由协议、OSPF 是链路状态路由协议; 2.利用最短路径算法、Dijkstra算法( 序号、顶点集合、顶点、距离向量dist[]、路径向量path[] ); 3.层次化网络;支持无类路由、VLSM、CIDR;支持认证。 4.本协议 不依赖传输层协议 (如TCP、UDP)提供数据传输、错误检测与恢复服务,数据包直接封装在网际协议IP(协议号89)内传输。 实验配置: ospf 1 router-id 1.1.1.1 area 0 network 13.0.0.0 255.0.0.0 network 23.0.0.0 255.0.0.0 1、区域: 主干网络 :area 0 连接各个区域的中心,所有的非主干区域都必须与该区域相连; 其他区域:存根区域stub area 、思科的完全存根区域、不完全存根区域; 2、路由器: 边界路由器BR :连接多个区域、作为某个区域的出口、为每个连接的区域建立LSDB 将连接区域的路由发送到主干区域,主干区域的ABR会将这些信息发送到各个区域。 自治域边界路由器ASBR: 内部路由器:所有端口在同一个区域。 主干路由器:端口连接主干区域; 3、选举: 邻居关系建立原则 : 1,DR与BDR之间要建立full关系状态 2

C语言 运算符优先级

一个人想着一个人 提交于 2020-02-29 12:12:23
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 后置++    后置自增运算符 变量名++ 左到右   后置--    后置自减运算符 变量名--       [ ] 数组下标 数组名[整型表达式]    ( ) 圆括号 (表达式)/函数名(形参表)   . 成员选择(对象) 对象.成员名   -> 成员选择(指针) 对象指针->成员名   2 - 负号运算符 -表达式 右到左 单目运算符 (类型) 强制类型转换 (数据类型)表达式   前置++ 前置自增运算符 ++变量名 单目运算符 前置-- 前置自减运算符 --变量名 单目运算符 * 取值运算符 *指针表达式 单目运算符 & 取地址运算符 &左值表达式 单目运算符 ! 逻辑非运算符 !表达式 单目运算符 ~ 按位取反运算符 ~表达式 单目运算符 sizeof 长度运算符 sizeof 表达式/sizeof(类型)   3 / 除 表达式/表达式 左到右 双目运算符 * 乘 表达式*表达式 双目运算符 % 余数(取模) 整型表达式%整型表达式 双目运算符 4 + 加 表达式+表达式 左到右 双目运算符 - 减 表达式-表达式 双目运算符 5 << 左移 表达式<<表达式 左到右 双目运算符 >> 右移 表达式>>表达式 双目运算符 6 > 大于 表达式>表达式 左到右 双目运算符 >= 大于等于 表达式>=表达式

端口安全

蹲街弑〆低调 提交于 2020-02-29 10:01:07
端口安全 交换机的五种攻击 VLAN跳跃攻击 生成树攻击 MAC表洪水攻击 泛洪:广播 1.限制MAC地址 配置 Switch>en Switch#config t Switch(config)#int f0/1 Switch(config-if)#sw mo acc//设置模式为ACCESS Switch(config-if)#switchport port-security //开启端口安全 Switch(config-if)#switchport port-security mac-address 00E0.8F09.42EA//绑定MAC地址 Switch(config-if)#switchport port-security violation shutdown //安全违例模式为关闭 violation的模式: protect:不回应 restrict:拒绝 shutdown:关闭 2.限制交换机端口的最大连接数 Switch(config-if)#switchport port-security maximum ARP攻击 VTP攻击 1.通过域名来同步 2.服务端和客户端模式(服务端(s),客户端(c),透明(t)) server client tranpatent 增删改vlan信息 v x v 转发VTP信息 v v v 同步VTP信息 v v x

可用性测试的五点思考

醉酒当歌 提交于 2020-02-29 03:53:35
   可用性测试 (Usability testing)是用来评估产品或系统的一种方法,这种方法起源于经典的实验学,可以进行复杂的 大样本测试 ,也可以进行简单的 小样本定性测试 。关于 可用性测试 的具体内容(5W+1H),网上已经有很多资料,包括中文和英文。我想了下,在这里,还是不再写普适性的科普文章,而是决定从近期做的 可用性测试 项目中提取一些个人思考,来与大家分享。   这些思考将分为五个点:(1) 预测试 ;(2)尽可能邀请相关方参与;(3)及时 调整脚本 ;(4)可用性问题的优先级排列;(5)注意用户的正面评价。其中(1)和(2)是可用性测试之前的准备,(3)是 可用性测试 中需要注意的,(4)和(5)是 可用性测试 结束后需要注意的。下面将按 照可用性测试 前、中、后分别进行概述。    可用性测试 之前   预测试   预测试是在正式 可用性测试 之前安排的一场模拟测试。进行 预测试 的主要目的在于确保测试中的硬件和软件是否 正常运行 、 脚本 是否清晰、任务是否可行、访谈的问题设计是否合理和清晰等。如果遇到这些问题,要及时进行调整和修改,这样可以避免一些 无效的测试 或可能出现的错误,从而降低时间成本。    预测试 可以找身边的同事,但这个同事不能是参与产品开发和设计的相关人员,可以考虑行政、后勤等非产品相关人员, 测试和访谈

Java多线程和并发基础面试题

懵懂的女人 提交于 2020-02-28 23:06:41
本文帮助大家掌握Java多线程基础知识来对应日后碰到的问题,具体内容如下 一、Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。 2. 多线程编程的好处是什么? 在多线程程序中,多个线程被并发的执行以提高程序的效率,CPU不会因为某个线程需要等待资源而进入空闲状态。多个线程共享堆内存(heap memory),因此创建多个线程去执行一些任务会比创建多个进程更好。举个例子,Servlets比CGI更好,是因为Servlets支持多线程而CGI不支持。 3. 用户线程和守护线程有什么区别? 当我们在Java程序中创建一个线程,它就被称为用户线程。一个守护线程是在后台执行并且不会阻止JVM终止的线程。当没有用户线程在运行的时候,JVM关闭程序并且退出。一个守护线程创建的子线程依然是守护线程。 4. 我们如何创建一个线程? 有两种创建线程的方法:一是实现Runnable接口,然后将它传递给Thread的构造函数,创建一个Thread对象;二是直接继承Thread类